如何在将记录插入表格时自动获取通讯者ID

时间:2012-04-10 23:07:19

标签: ruby-on-rails-3

我正在使用ROR3为公司开发员工记录管理系统。刚刚开始一个月前。因此在开发应用程序时遇到一些麻烦。

这些是一些表格

1-个人资料 ID 服务号 名字 姓氏

2-促销活动 ID 服务号 秩 date_of_rank PROFILE_ID

当员工晋升到下一级时,我有一张表格可以插入促销记录。

        
    <%= f.input :service_number %>
    <%= f.input :rank %>

    <%= f.input :date_of_rank, :start_year => Date.today.year - 50, :end_year => Date.today.year%>

        <%= f.hidden_field :profile_id %>


    <%= f.error :base %>
    <%= f.button :submit %>
<% end %>

将数据插入促销表时,我想插入与用户输入的服务号对应的profile_id。 profile_id是用户的隐藏字段。所以需要自动获取profile_id。我使用服务号码,因为它是公司用来识别员工的唯一号码。

任何人都可以帮我这样做吗?

1 个答案:

答案 0 :(得分:0)

是否需要隐藏profile_id隐藏代码?如果service_number是一个唯一字段,您只需根据该字段查找Profile并将其与您正在创建的Promotion相关联。

def create
  @promotion = Promotion.new(params[:promotion])
  profile = Profile.where(:service_number => @promotion.service_number).first
  @promotion.profile = profile  # this will set profile_id for you

  @promotion.save
  ...
end

假设您的Promotion模型具有belongs_to :profile关联,而您的Profile模型具有has_many :promotions关联(或has_one :promotion)。