首先我刚开始使用rails,我有一个联接表Menus_orders,我试图在创建时加载ID。
我有这个表单助手,可以访问Order.new(:id,:name)字段和fields_for Menus_order(:menu_id,:order_id)。我可以从select中插入menu_id,但是我不能在生活中找出如何使用当前order_id填充隐藏的输入,表单在@order中保存。
在这里查看ORDER_ID
<div class="form">
<h1>Create a new order</h1>
<%= form_for @order do |f| %>
<%= f.label :name%><br>
<%= f.text_field :name%><br>
<h3>Select meals</h3>
<%= fields_for(@menus_order) do |i| %>
<div class="field">
<%= i.select :menu_id, options_for_select(Menu.all.pluck(:id)) %>
<%= i.hidden_field :order_id, :value => ORDER_ID HERE %>
</div>
<% end %>
<br>
<%= f.submit "Create"%><br>
<% end %>
</div>
谢谢,DW
答案 0 :(得分:1)
您应该为订单模型使用嵌套属性,只需应用 公约权利&amp;它将被处理,你可以实现这一目标 以下示例:
order.rb应该是:
.getString()
menu_order.rb如:
class Order < ActiveRecord::Base
has_many :menu_orders
accepts_nested_attributes_for :menu_orders
end
<强> 订单/ new.html 强>
class MenuOrder < ActiveRecord::Base
belongs_to :order
end
<强> OrdersController 强>
<div class="form">
<h1>Create a new order</h1>
<%= form_for @order do |f| %>
<%= f.label :name%><br>
<%= f.text_field :name%><br>
<h3>Select meals</h3>
<%= f.fields_for :menu_orders do |i| %>
<div class="field">
<%= i.select :menu_id, options_for_select(Menu.all.pluck(:id)) %>
</div>
<% end %>
<br>
<%= f.submit "Create"%><br>
<% end %>
</div>