我Rails的新手,遇到了一些麻煩傳遞參數形成。傳遞參數,形成的link_to爲的has_many:通過關聯
我有一個課程模式和課程模式。課程和教訓與have_many:通過關聯有關。代碼如下:
class Course < ActiveRecord::Base
attr_accessible :description, :name
has_many :course_listings
has_many :lessons, through: :course_listings
end
class Lesson < ActiveRecord::Base
attr_accessible :title, :body, :category_ids
has_many :course_listings
has_many :courses, through: :course_listings
end
class CourseListing < ActiveRecord::Base
attr_accessible :course_id, :lesson_id
belongs_to :course
belongs_to :lesson
end
我想允許用戶教訓添加到現有的,即創建一個新的課程列表中。現在,我已經在應用上的/視圖/場/ show.html.erb
<%= link_to 'Add New Lesson', new_course_listing_path(course_id: @course.id) %>
下在CourseListingsController,我有:
def new
@course_listing = CourseListing.new
if params[:course_id]
@course_listing.course_id = params[:course_id]
end
end
在形式新課程列表中,我有:
<%= form_for(@course_listing) do |f| %>
<%= f.hidden_field :course_id, value: @course_id %>
<%= f.label :lesson_id, "Enter Lesson" %>
<%= f.text_field :lesson_id %>
<%= f.submit "Save" %>
<% end %>
上面的代碼沒有提交課程ID。在日誌中我看到:
Parameters: {..., "course_listing"=>{"course_id"=>"", "lesson_id"=>"7"},
"commit"=>"Save Lesson"}
(0.1ms) begin transaction
(0.1ms) rollback transaction
從上面可以看出,course_id沒有被傳遞到CourseListingsController。花了相當多的時間研究這一點,任何指導將非常感激。
保存頭疼的你的自我天simple_form - 在軌形式容易做 - https://github.com/plataformatec/simple_form –