在rails上的ruby中使用相同的属性一次更新2个模型

时间:2012-04-30 09:46:49

标签: ruby-on-rails ruby-on-rails-3.2 rails-models

我在store_opening_stock表单中有这个

    <%= simple_form_for @store_opening_stock do |f| %>
      <%= f.error_messages %>
      <p>
      <%= f.hidden_field :user_id, :value => current_user.id %>

      <%= f.label :employee_id %>
      <%= f.collection_select :employee_id, Employee.all, :id, :name, options ={:prompt => "-Select  employee  Name"}, :class => "employee name", :style=>'width:210px;'%><br />

         <%= f.label :date %>
        <%= f.datepicker :date, :dateFormat => 'dd MM, yy',  :showOn => "both", :buttonImage => "/assets/calendar.gif", :buttonImageOnly => true, :changeMonth => true, :changeYear => true, :placeholder => "Click on the calender", :yearRange =>'1950:2042' %><br/>

        <%= f.label :product_id %>
        <%= f.collection_select :product_id, Product.all, :id, :title, options ={:prompt => "-Select  Product  Name"}, :class => "product name", :style=>'width:210px;'%><br /> 

        <%= f.input :batch_no,  :label => 'Batch No', :input_html => { :size => 30}%><br/>
        <%= f.input :price,  :label => 'price', :input_html => { :size => 30}, :placeholder =>'Enter Digits'%><br/> 
        <%= f.input :quantity,  :label => 'quantity', :input_html => { :size => 30}, :placeholder =>'Enter Digits'%><br/>
       <p><%= f.submit %></p>
<% end %>

我有2个型号,一个是store_opening_stock.rb和stock.rb

class StoreOpeningStock < ActiveRecord::Base
    attr_accessible :comments_attributes, :stocks_attributes
  attr_accessible :user_id, :date ,:store_location_id, :product_id, :batch_no
  attr_accessible :expiry_date, :price, :quantity, :comment_id, :employee_id
  attr_accessible :goods_receipt_id

  has_many :stocks    
end


class Stock < ActiveRecord::Base
    attr_accessible :date, :store_location_id, :product_id, :batch_no, :expiry_date, :price, :quantity, :goods_reciept_id

    belongs_to :store_opening_stock, :foriegn_key => "store_opening_stock_id"
    acts_as_store_opening_stock
    accepts_nested_attributes_for :store_opening_stocks
end
end

有没有办法我可以在store_opening_stock表单中点击提交后立即将store_opening_stocks的PRICE,PRODUCT_ID,QUANTITY,BATCH-NO更新为库存?????我可以一次更新2个表,因为我在Ruby on rails上按提交???? 提前致谢

1 个答案:

答案 0 :(得分:2)

是。看你已经在stock.rb模型中使用'accepts_nested_attributes_for'这是一个很好的做法,同时从库存模型表单中保存多个'store_opening_stock'记录。

但是如果你想在表单中使用不同的模型属性,可以使用fields_for

来完成