« 武部本一郎SF挿絵原画蒐集〈上〉〈下〉 | トップページ | Diane Arbus »

レンダーにハマる

 たとえば、
item_controller.rb に、
def new
 @item = Item.new
 @places = Place.find(:all) # B
end

def create
 #
 if @item.save
  #
  redirect_to :action => 'list'
 else
  render :action => 'new' # A
 end
end

 とかあって、view/item/new.rhtml に、
<% form_tag :action => 'create' do %>
<%= collection_select :item, :place_id , @places, :id, :name %> # C
<%= text_field :item, :name %>
<%= submit_tag 'submit' %>
<% end %>

 とかあって、new のページで何も入力しないで送信ボタンを押す。検証が設定されていると、A によってレンダーされるのだけれど、ここで C で「 NoMethod Error 」が出てしまう。 B は、レンダーされるときには行われないってことらしい。

 そんなこんなでちょっとハマる。ビューの側に B を書いておくのが面倒がないけれど、アジャイル本では「コントローラかヘルパーに書くべき」といった記述もある。コントローラだとレンダー前に同じ記述をするようになりそうなので、やはりヘルパーに書くのが無難なのかなとも。

|

« 武部本一郎SF挿絵原画蒐集〈上〉〈下〉 | トップページ | Diane Arbus »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: レンダーにハマる:

« 武部本一郎SF挿絵原画蒐集〈上〉〈下〉 | トップページ | Diane Arbus »