0

我在数据库中有一个表,其中包含以下列:

  1. ID
  2. package1_name
  3. package2_name

file_field的 s 中有两个_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
4

1 回答 1

1

这只会在 params[:submission][:id] 中具有 id 的记录不存在时创建提交。

def create
   @submission = Submission.where(:id => params[:submission][:id]).first_or_create(params[:submission])
end

但是,我同意表单两次调用 create 方法似乎不正确。你需要这样做似乎很奇怪。无论如何,如果这种行为是正确的,我希望这会有所帮助。

于 2013-02-19T22:29:16.373 回答