サブジェクト モデルとレッスン モデルがあります。ネストされたモデル フォームを実装しました。
科目を作成した後、関連するレッスンが表示されていると思われるページに誘導しました。しかし、私はレッスンを見ることができません。
レッスンのデータが適切に保存されなかったと思います。たとえば、lesson.find_by_subject_id('1') を実行すると、'nil' が返されます。
ポリモーフィズムがレール上でどのように機能するかを理解しようとしています.誰かが私が間違っている場所を指摘するか、作成される属するクラスの値を渡す方法についてのガイダンスを教えていただければ幸いです.
対象モデル
attr_accessible :subjectCode, :lessons_attributes
has_many :lessons, :dependent => :destroy
accepts_nested_attributes_for :lessons, :reject_if => lambda { |a| a[:content].blank? }, :allow_destroy => true
レッスンモデル
attr_accessible :lessonName, :subject, :subject_id
belongs_to :subject
サブジェクト コントローラー
def new
3.times {@subject.lessons.build}
end
def create
@subject = Subject.new(params[:subject])
if @subject.save
redirect_to @subject, :notice => "Successfully created subject."
else
render :action => 'new'
end
end
形
<%= form_for @subject do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :subjectCode %><br />
<%= f.text_field :subjectCode %>
</p>
<%= f.fields_for :lessons do |builder| %>
<p>
<%= builder.label :lessonName %> <br/>
<%= builder.text_area :lessonName, :rows=>3 %>
</p>
<% end %>
<p><%= f.submit "Submit" %></p>
<% end %>
リソースをルーティングする : 被験者がリソースを実行する : レッスンが終了する