レールに新規の人物があり、関連付けられたオブジェクトに保存されていない問題があります。私はすべてのことをやり遂げなければならないと思っています。私は理解できません、どうしてそれはうまくいかないのですか?だから私はこの問題を解決するために少し近づくのを助けることができるすべての人に事前に感謝します。 これらは私のモデルです:私のexams_controller
で関連付けられたオブジェクトがfields_forで保存されていません
class Examdate < ActiveRecord::Base
belongs_to :exam
attr_accessible :date, :exam_id
end
class Exam < ActiveRecord::Base
attr_accessible :title, :prof_id, :deadline
belongs_to :prof
has_many :examdates, :dependent => :destroy
accepts_nested_attributes_for :examdates
end
私はこれを持っている:
def new
@exam = Exam.new
3.times{@exam.examdates.build()}
end
def create
@exam = Exam.new(params[:exam])
respond_to do |format|
if @exam.save
....
今、私の見解で、私はsemantic_fields_for
方法は、私も通常のfields_for
でそれを試してみましたが、同じ結果を持っています:部分的に
<%= semantic_form_for @exam do |f| %>
<% if @exam.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@exam.errors.count, "error") %> prohibited this post from being saved:</h2>
<ul>
<% @exam.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<%= f.inputs do%>
<%= f.input :title%>
<%= f.input :prof%>
<%= f.input :deadline, :start_year => Time.now.year, :label => "Anmeldefrist"%>
<% end %>
<%= f.semantic_fields_for :examdates do |builder|%>
<%= render "examdates_fields", :f => builder %>
<% end %>
<%= f.buttons do %>
<%= f.commit_button "Speichern"%>
<% end %>
<% end %>
、この後で
0123延長されます<%= f.inputs :date%>
正しい3つの日付フィールドを持つフォームが表示され、Exam
自体を正しく保存できます。
{"0"=>{"date(1i)"=>"2006", "date(2i)"=>"1", "date(3i)"=>"1"},
"1"=>{"date(1i)"=>"2006", "date(2i)"=>"1", "date(3i)"=>"1"},
"2"=>{"date(1i)"=>"2006", "date(2i)"=>"1", "date(3i)"=>"1"}}
しかし、私は私のレールコンソールでExam.find(1).exdates
を入れたときに、私は[]
を取得する:私はparams[:exam][:examdates_attributes]
を見てみると日付があります。私は本当に私が間違って何をしたか任意のアイデアを持っているドントので、どんな小さなチップが非常に高く評価され:)
するTry指定:<%= f.semantic_fields_for:examdates、exam.examdatesが行う@ |ビルダー| %> –