2017-07-04 71 views
0

仍然學習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://stackoverflow.com/questions/22284668/rails-4-nested-attribute-in-a-form-not-saving?rq=1 – zishe

+0

是的。這沒有用。選項在那裏,但它不能保存。我更新了代碼以反映這一點。感謝您的回答 –

+0

試圖在提交表單時創建新的鍛鍊。這項活動是空白的。 –

回答

1

固定它。錯誤發生在view> collection_select中。訂單是錯誤的,我改變了:activity_id爲:activity

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