有许多嵌套表单没有保存到数据库

时间:2017-07-04 05:02:05

标签: ruby-on-rails-4 nested-forms

还在学习rails并且已经坚持了一段时间,我感觉这是一个简单的修复,我只是没有得到它。

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

这就是我设置的内容。

锻炼模型

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

锻炼控制器参数

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

活动控制器参数

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 %>

提前致谢

1 个答案:

答案 0 :(得分:1)

修正了它。错误出现在视图中&gt; collection_select。订单错了,我改变了:activity_id to:activity

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