Rails 2.3 用に発行された、比較的「古い本」である Head First rails に戻りました。ここで、これらのサンプルをもう一度見て、Rails 3 を使用して、いくつかの質問を思いつきました。
ココナッツ航空のサンプルを適応させており、フライトと座席の代わりに、プロジェクトとタスクがあるとしましょう。
このページには、プロジェクトの説明と、そのプロジェクトに関連付けられたタスクのリストが表示されます。ここまでは順調ですね。その下に、新しいタスクを作成するためのフォームがあります。このタスクには、Task オブジェクトと project_id が必要です。これは、物事が以前のように機能しない場合です。
古いスタイルのようにしたい場合は、次のように入力します。
<%= render :partial => "new_task",
:locals => {:task => Task.new(@project.id)} %>
まあ、これは大量割り当てエラーを示しています。
次に、両方をパラメーターとして渡そうとしました:
<%= render :partial => "new_task",
:locals => {:task => Task.new, :project_id => @project.id} %>
部分的に割り当てます
<%= f.hidden_field :project_id, :value => project_id %>
ヒントはありますか?
編集:
class Task < ActiveRecord::Base belongs_to :project attr_accessible :title end
class Project < ActiveRecord::Base has_many :tasks attr_accessible :description, :title end