我在数据库中有一个包含以下列的表:
- ID
- package1_name
- package2_name
醇>
我的file_field
中有两个_form.html.erb
:
<%= form_for(@submission, :html => { :multipart => true }) do |f| %>
<%= f.fields_for :uploads do |upload| %>
<%= upload.file_field :package1 %>
<%= upload.file_field :package2 %>
<% end %>
<% end %>
每次单击“提交”按钮,它都会在数据库中创建两个单独的条目。
有没有办法改变create
的行为,以便在存在的情况下找到数据库条目,否则会创建一个新条目?
我试过这个,但它不起作用:
def create
@submission = Submission.find_or_create_by_id(params[:submission])
...
end
答案 0 :(得分:1)
如果不存在id为para:[:submission] [:id]的记录,则只会创建提交。
def create
@submission = Submission.where(:id => params[:submission][:id]).first_or_create(params[:submission])
end
但是,我和abhir一样,表单调用create方法两次似乎不对。你需要做这件事似乎很奇怪。无论如何,如果行为是正确的,我希望这会有所帮助。