当用户点击submit
如何传递来自两个不同模型/数据库表的信息?用一个提交保存两个模型(属于第三个模型)?
用户应该可以在missed_dates
表格中创建一个note
,然后该注释应该保存到错过的日期所指的相应@challenge
。
missed_dates/form.html.erb
<%= simple_form_for(@missed_date, url: challenge_missed_dates_path({ routine_id: @challenge }), remote: request.xhr?, html: { data: { modal: true } }) do |a| %>
<%= form_for [@notable, @note] do |b| %>
<%= a.text_field :one %>
<%= b.text_field :two %>
<%= button_tag(type: 'submit') do %>
Save
<% end %>
<% end %>
<% end %>
missed_date.rb
class MissedDate < ActiveRecord::Base
belongs_to :user
belongs_to :challenge
end
missed_date_controller
def new
@challenge = current_user.challenges.find(params[:challenge_id])
@missed_date = current_user.missed_dates.build
@notable = @challenge
@note = Note.new
end
def create
challenge = current_user.challenges.find(params[:challenge_id])
challenge.missed_days = challenge.missed_days + 1
challenge.save
@missed_date = challenge.missed_dates.build(missed_date_params)
@missed_date.user = self.current_user
@missed_date.save
respond_modal_with @missed_date, location: root_path
flash[:alert] = 'Strike added'
end
所以你说我在表单中正确无误?我尝试过,但仍然出现错误。我认为这可能是因为'submit'不知道,要提交哪个表单? –
请看看http://stackoverflow.com/questions/2182428/rails-nested-form-with-has-many-through-how-to-edit-attributes-of-join-model - 它解释了如何在整个连接表中使用嵌套模型和表单。您是否使用过“has_many:through”,是否添加了“accep_nested_attributes_for”?您是否在联接模型和目标模型上调用了“构建”?如果你做了所有这些请求。给我一个关于你实际做了什么的笔记,明天我会试着设置一个工作示例(现在是0点30分,所以要睡一会儿...) –