有很多嵌套的表格不能保存到数据库

问题描述:

仍然学习rails,并且一直困在这里一段时间,我感觉这是一个简单的修复,我只是没有得到它。有很多嵌套的表格不能保存到数据库

我想使用一个单独的模型来填充另一个模型的窗体中的下拉列表。所以是一个嵌套的表单。这是在锻炼中完成的活动类型。

这是我设置的。

锻炼模型

class Workout < ActiveRecord::Base 
    belongs_to :user 
    has_many :activities 
    accepts_nested_attributes_for :activities 
    validates :activity, presence: true 
end 

锻炼控制器PARAMS

def workout_params 
     params.require(:workout).permit(:rating, :activity, :workout_date, :activity_id, activity_params:[:id, :title]) 
end 

活动模型

class Activity < ActiveRecord::Base 
    belongs_to :workout 
end 

活动控制器PARAMS

def activity_params 
    params.require(:activities).permit(:title, :rating, workout_params:[:id]) 
end 

查看

<%= form_for(@workout) do |f| %> 
    <div class="control-group"> 
     <%= f. label :activity, class: 'control-label' %> 
    </div> 
    <div class="checkbox"> 
     <%= collection_select(:activity, :workout_id, Activity.all, :id, :title, {}, 
    {:multiple => false }) %> 
    </div> 
    <div class="actions"> 
     <%= f.submit %> 
    </div> 
<% end %> 

在此先感谢

+0

您是否在表单中为activity =>'activities'尝试了复数形式。检查此https://*.com/questions/22284668/rails-4-nested-attribute-in-a-form-not-saving?rq=1 – zishe

+0

是的。这没有用。选项在那里,但它不能保存。我更新了代码以反映这一点。感谢您的回答 –

+0

试图在提交表单时创建新的锻炼。这项活动是空白的。 –

固定它。错误发生在view> collection_select中。订单是错误的,我改变了:activity_id为:activity

<%= collection_select :workout, :activity, Activity.all, :id, :title, {}, {:multiple => false } %>