我想寫對於那些喜歡這個相互關聯的2種不同型號的數據:如何製作兩種相關模型的一種形式?
當然class Post < ActiveRecord::Base
has_many :roads
accepts_nested_attributes_for :roads, :allow_destroy => true
end
class Road < ActiveRecord::Base
belongs_to :post
end
的去路表中有一個「POST_ID列」。我在後視圖中的form_for看起來像這樣
<%= form_for @post do |f| %>
<div class="form-group">
<%= f.label :Tu_Nombre %>
<%= f.text_field :creador, class: "form-control" %>
</div>
<div class="form-group">
<%= f.label :año %> (Cuando fue tu experiencia?)
<%= f.text_field :año, class: "form-control" %>
</div>
<div class="form-group">
<%= fields_for :roads do |r| %>
<%= r.label :principio %> (desde?)
<%= r.text_field :principio, class: "form-control" %>
<%= r.label :final %> (hasta?)
<%= r.text_field :final, class: "form-control" %>
<% end %>
</div>
<div class="form-group">
<%= f.label :historia %> (Cuentanos la historia de tu viaje!)
<%= f.text_area :historia, class: "form-control", size: "50x15" %>
</div>
<div>
<%= f.submit class: "btn btn-success" %>
</div>
<% end %>
最後我posts_controller創建方法
def create
@post = Post.new(post_params)
if @post.save
redirect_to @post, notice: 'Post was successfully created.'
else
render :new
end
end
與私營
def post_params
params.require(:post).permit(:historia, roads_attributes: [:pricipio, :final, :post_id])
end
的後提交,如果我檢查控制檯所有郵政的屬性已經保存了,但是用於道路的屬性卻沒有。我怎樣才能使用這兩個模型的一個表單兩個記錄,並且post_id得到註冊,所以我可以關聯表?
非常感謝!
中錯過了@ post.roads.build差不多..它爲我工作@ post.roads.build ... –