访问rails内部的Model ID形成帮助器

时间:2016-03-27 19:25:39

标签: ruby-on-rails ruby postgresql activerecord form-helpers

首先我刚开始使用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

1 个答案:

答案 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>