1
我正在關注Ryan Bate第285集的第一部分。不知道爲什麼它不起作用。下面是代碼:Rails collection_select not create records - 無編號
型號:
class Comic < ActiveRecord::Base
has_many :comics_genres
has_many :genres, through: :comics_genres
end
class ComicsGenre < ActiveRecord::Base
belongs_to :genre
belongs_to :comic
end
class Genre < ActiveRecord::Base
has_many :comic_genres
has_many :comics, through: :comics_genre
end
形式創造新的漫畫:
<%= form_for ([@user, @comic]) do |f| %>
<div><%= f.collection_select :genre_ids, Genre.order(:genre), :id, :genre, {}, {multiple: true} %></div>
<%= f.submit class: "btn btn-primary" %>
<% end %>
漫畫控制器:
def create
@user = current_user
@comic = @user.comics.new(comic_params)
respond_to do |format|
if @comic.save
format.html { redirect_to @comic, notice: 'Comic was successfully created.' }
format.json { render action: 'show', status: :created, location: @comic }
else
format.html { render action: 'new' }
format.json { render json: @comic.errors, status: :unprocessable_entity }
end
end
end
def comic_params
params.require(:comic).permit(:id, :title, :synopsis,
comic_pages_attributes: [:comic_page_image],
comics_genres_attributes: [:genre_id, :comic_id])
end
在控制檯中,我得到的記錄,像這樣:
問題是,genre_id是零,但我不知道如何讓它傳遞正確的值。
非常感謝!
只需使用表單生成器來構建集合中選擇:'f.collection_select:genre_ids(ETC)'用這個表格Builder將範圍在'PARAMS的collection_select [:用戶] [:漫畫] [:genre_ids] ' – MrYoshiji
我的歉意。我的意思是鍵入f.collection_select ... 我想我很難將參數寫入comics_genre表。 – Jayway