Pages

2011年5月28日土曜日

[linux]sshで公開鍵ログイン[ssh]

クライアントで
$ ssh-keygen -t rsa
をして.ssh以下に出来るid_rsa.pubをサーバーに転送します。

サーバーでid_rsa.pubを.ssh以下にあるauthorized_keysに追加します。
.ssh$ id_rsa.pub >> authorized_keys

後はパーミッションを確認して終了です。

2011年5月24日火曜日

[Rails]accepts_nested_attributes_forでネストした別モデルのフォーム[Ruby]

railsを使っていて、親モデルのフォームの中で、子モデルのフォームも一緒に更新したいと思いました。はじめは親モデルのコントローラに処理を追加して…などやっていましたが、いろいろ調べた結果、どうやら便利なものがあるようでした。

 accepts_nested_attributes_forと言うものらしいです。

そこで、様々なサイトを参考にしながらいろいろ試したのにうまくいかない。
はて、どうしたものか。。。

途方にくれていたところ、下記のサイトを発見しました。

Rails accepts_nested_attributes_for and fields_for


# model

class Parent < ActiveRecord::Base
  has_one :child
  accepts_nested_attributes_for :child
end

class Child < ActiveRecord::Base
  belongs_to :parent
end


# controller

class ParentsController < ApplicationController
  #...
  def new
    @parent = Parent.new
    @parent.build_child # ここが大切だったようです。
  end

  def edit
    @parent = Parent.find(param[:id])
    @parent.build_child if @parent.child.nil?
  end
end


# view (in Haml, with formtastic, but you can do this with regular Rails helpers too)

- semantic_form_for @parent do |f|
  - f.inputs do
    = f.input :name
  - f.semantic_fields_for :child do |c|
    - c.inputs do
      = c.input :some_child_field

親モデルをnewするときに、子モデルのほうもbuildしないとだめみたいです。

2011年4月9日土曜日

[Rails]本当によく忘れる別DBからselectの作成[Ruby]

何度やっても忘れてしまうのでメモ代わりに。

<%= f.collection_select :user_id, User.all, "id", "name" %>

collection_selectを使えばとっても簡単。

2011年3月26日土曜日

[BlueQuartz]pppoeの再接続[CentOS]

会社運用のBluequartzが再起動したらpppoe接続が切断されていました。
今までは再起動したら自動的に接続していたのに…。

原因の追究は後回しにして、とりあえずサーバーが起動した状態からpppoeの再接続を試みてみます。

$ sudo -s
# /etc/rc.d/init.d/network reload

これでとりあえず接続は確立されました。
なぜ自動接続出来ないのかは後ほどしっかり調べてみることにします。

[Apache]続・なんとなくページが開かないKeepAlive[CentOS]

先日のサーバー不調。apacheの設定をいろいろ変更して様子をみていました。
様子を見るといっても、具体的に何をしたということは無く、Just Feelしてました。

やはり調子が悪い(ページが開かない)ので、NTTさんに連絡したところ上位回線に混雑があるとのこと。詳しく調べてみるので折り返し連絡しますと言ってくれたのでのんびり待っていました。

で、回答は「多少混雑(?)は見られますが、やはり上位回線に問題はないです。」ということでした。そこで上司は食い下がりました。「現実に遅いから回線でしょ?一度きてください。」

少し待つと担当者さんが来ていろいろ調べていましたが、やはり問題ないとのこと。上司はあきらめません。

「なんとかしてください。」

で、結局ONUを交換していきました。

ぜんぜん調子が良くなりました。ONUの故障だったのかなぁ。。。

2011年2月15日火曜日

[Apache]なんとなくページが開かないKeepAlive[CentOS]

会社のhttpサーバーの移設をした後に、なぜか遅いのです。原因は新しく引いた光回線なのか、それともハブなのか、どこにあるのかは自分にはまったくわかりません。

が、手をこまねいている自分ではありません。サックリとうわべだけ調べて、ささっと設定してみます。
今回はKeepAliveというapacheの設定を。

早速SSHでアクセスします。
$ sudo -s

念のためバックアップを。
# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak

viで開きます。
# vi /etc/httpd/conf/httpd.conf

次の行を変更しました。
KeepAlive Off

KeepAlive On

んで、保存したら…

httpdを再起動して、様子を見てみます。
# /etc/init.d/httpd restart

httpdを停止中:
httpdを起動中:WARNING: MaxClients of 500 exceeds ServerLimit value of 256 servers

警告が出ていますが後から必ず修正すると心に誓って、今日の作業は終了です。

2010年11月27日土曜日

[Rails3]jQueryでobserve_field的なことを。

Rails3において、セレクトボックスの連動をしたくなりました。
よく見かける「都道府県-市町村」が連動しているものです。

今まで(Rails2の時)にはそんなことをしようとも思わなかったので
かなり苦戦しました。

新しくなったRails3ではjavascriptの扱い方
が変更になったようです。

今回はjquery-railsを使いjQueryを使える状態にしてあることを
前提にしています。
((view))hoge.html.erb
<%= f.label :prefecture_id %> <%= f.select :prefecture_id, Prefecture.all.collect {|u| [ u.name, u.id]} %>
<%= f.label :city %>
更新スペース
((controller))hoge.rb def city_select @cities = City.where("ken_code = ? AND id > ?", params[:pref_id], params[:pref_id] + "100") render end ((public))application.js $(function(){ $('#prefecture_id').change(function(){ var pref_id = $("#prefecture_id").val(); $.get("city_select?pref_id=" + pref_id); }); }); ((js.erb))city_select.js.erb $("#city_id").html("<%= escape_javascript(render :partial => 'select_city', :pref_id => params[:pref_id]) %>"); select_city.html.erb <% ここにselect要素の処理を書く %>

非常に分かりにくい説明で申し訳ないのですが、どうやらプルダウンの変更のキャッチは
javascript側で行うようです。ですのでjavascriptの知識も少々必要になりそうな予感です。
javascriptはpublicのapplication.jsに記述しています。