カテゴリ化と呼ばれるカテゴリ/ビデオ投稿の結合テーブルを設定しようとしています。すべて問題ないように見えますが、create video_form が送信されると、結合テーブルにデータが入力されません。まず、以下のフォームに何か問題がありますか? 選択フィールドが実際にそのテーブル用であることを知るために、他に何かする必要がありますか?
video_posts/_form.html.erb
<%= form_for('video_post', url: video_posts_path) do |f| %>
<%= f.text_field :video_title, placeholder: "Video Title" %>
<%= f.select :id, Category.all.collect { |c| [c.category_name, c.id] }, {:include_blank => true} %>
<%= f.text_area :video_description, placeholder: "Description" %>
<%= f.text_field :video_url, placeholder: "URL" %>
<%= f.submit "Post", class: "submit" %>
<% end %>
以下は私のモデルです。
class Categorization < ActiveRecord::Base
belongs_to :categories
belongs_to :video_posts
end
class Category < ActiveRecord::Base
attr_accessible :category_name
has_many :categorizations
has_many :video_posts, :through => :categorizations
end
class VideoPost < ActiveRecord::Base
has_many :categorizations
has_many :categories, :through => :categorizations
end
これが作成機能です。
def create
post_paginate
@video_post = current_user.video_posts.build(params[:video_post])
if @video_post.save
flash[:success] = "Video posted!"
redirect_to root_path
else
flash[:success] = "Errors found! Please try again."
index
render :index
end
end
どうもありがとうございました。