我正在使用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。我使用服务号码,因为它是公司用来识别员工的唯一号码。
任何人都可以帮我这样做吗?
答案 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
)。