RoR入門第4回

部分テンプレートが使用できる。
部分テンプレートはファイル名を「"_" + 部分テンプレート名」とする。
部分テンプレートに渡した引数は部分テンプレート名と同じ名前の変数でアクセスできる。

<%# 単項目用 %>
<%= render(:partial => 部分テンプレート名, :object => 引数) %>
<%# 複数項目用 %>
<%= render(:partial => 部分テンプレート名, :collection => 引数) %>


Ajaxを使用するには特定のライブラリを読み込む必要がある。

<% javascript_include_tag :defaults %>

Ajax用のボタン

<% form_remote_tag :url => {:action => Action名, :id => ID} do %>
	<%= submit_tag "ボタン名" %>
<% end %>

Actionの最後でrepond_toを呼び出す。

respond_to do |format|
	format.js
end

RJSテンプレートを使用してDomを書き換える。
RJSテンプレート名は「Action名 + ".js.rjs"」。

#対象の要素を書き換え
page.replace_html(書き換え対象要素のID, :partial => 部分テンプレート名, :object => 引数)
#ビジュアルエフェクトを追加
page[対象要素のID].visual_effect :highlight, :startcolor => "#88ff88", :endcolor => "#114411"


タグを生成するヘルパーメソッド。
開始タグと閉じタグの間にブロックの戻り値を挿入する。
条件によって適用するスタイルを変更する等、他のヘルパーメソッドの中から使うと便利。

content_tag(タグ名, 属性Hash, ブロック)


Railsマイグレーションは外部キー制約をデータベースに依存しない方法で設定することができない。
db/schema.rbにも外部キー制約が格納されない。
アプリケーションで担保しなさいという思想なんだとか。
関連はModelに以下のように設定する。

#1対多(多)
has_many :モデル名(複数形)
#1対多(1)
belongs_to :モデル名(単数形)

関連するモデルのセットは下記のようにする。
こうすれば外部キーが自動的にセットされるのだとか。

モデル名(複数形) << モデル
モデル名(単数形) = モデル


Ajaxデバッグは難しいから、少しずつインクリメンタルに開発すること。


form_forヘルパーメソッドでformのコンテキストを作成する。
このformはこのモデルと紐づいてますよ、という感じか?

<% form_for :モデル名, url => {action => :Action名} do |form| %>

フォームを空っぽの状態で表示するときもコントローラのインスタンス変数@orderが必要?
フォームをSubmitした後は下記のようにしてアクセス可能。
params[:モデル名]の中身はリクエストパラメータが入っているHashみたい。

モデルクラス.new(params[:モデル名])