many-to-many
投稿モデルとカテゴリモデルの間に関連付けがあります。postのネストされた属性としてcategoryフィールドを追加しました:
post_controller.rb:
def new
@post = Post.new
end
posts / new.html.erb:
<%= f.select :category_ids, Category.all.collect {|c| [c.name, c.id]} %>
categorization.rb:
class Categorization < ActiveRecord::Base
attr_accessible :category_id, :post_id, :position
belongs_to :post
belongs_to :category
end
category.rb:
class Category < ActiveRecord::Base
attr_accessible :name
has_many :categorizations
has_many :posts, :through => :categorizations
validates :name, presence: true, length: { maximum: 14 }
end
post.rb:
class Post < ActiveRecord::Base
attr_accessible :title, :content, :category_ids
has_many :categorizations
has_many :categories, :through => :categorizations
end
<%= f.select :category_ids, Category.all.collect {|c| [c.name, c.id]} %>
今、フォームを送信した後、私は次のようなものを取得します:
[#<Category id: 2, name: "Design", created_at: "2012-11-23 10:12:54", updated_at: "2012-11-23 10:12:54">, #<Category id: nil, name: nil, created_at: nil, updated_at: nil>]
余分なnilカテゴリがどこから来ているのかわかりません。
理由は何でしょうか?
編集:
新規投稿:
送信後に生成されたhtml: