3
私はHABTMに問題があります。私はチュートリアルに従いますが、私はそれらを見ていますが運はありません。ここに私のコードは次のとおりです。HABTMからCheckboxes Issue Rails 3
class Country < ActiveRecord::Base
has_and_belongs_to_many :videos
end
class Video < ActiveRecord::Base
has_and_belongs_to_many :countries
end
編集ビュー:
<% for country in Country.find(:all) %>
<%= check_box_tag "video[country_ids][]", country.id, @video.countries.include?(country.id) %>
<%= label_tag "video[country_ids][]", country.name, :for => "video[country_ids][]" %><br />
<% end %>
ビューの表示:
<% for country in @video.countries %>
<%= country.name %><br />
<% end %>
ビデオコントローラ:
def update
@video = Video.find(params[:id])
if @video.update_attributes(params[:video])
flash[:notice] = "Successfully updated video."
redirect_to video_url
else
render :action => 'edit'
end
end
そしてログのエラー:
Started POST "/videos/2" for 127.0.0.1 at Tue Feb 08 15:01:33 -0600 2011
Processing by VideosController#update as HTML
Parameters: {"commit"=>"Update Video", "authenticity_token"=>"6y01pmKxB+TEG0pbU6ujDsfwzqQW9eqiXBJfPHQW5+w=", "utf8"=>"✓", "id"=>"2", "video"=>{"name"=>"Video number 1", "vimeo_id"=>"12341234", "country_ids"=>["2", "3", "4", "11", "12", "13"]}}
[1m[36mVideo Load (0.4ms)[0m [1mSELECT "videos".* FROM "videos" WHERE ("videos"."id" = 2) LIMIT 1[0m
[1m[35mCountry Load (0.4ms)[0m SELECT "countries".* FROM "countries" WHERE ("countries"."id" IN (2, 3, 4, 11, 12, 13))
Completed in 35ms
ActiveRecord::StatementInvalid (Could not find table 'countries_videos'):
app/controllers/videos_controller.rb:31:in `update'
Rendered /Library/Ruby/Gems/1.8/gems/actionpack-3.0.3/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.1ms)
Rendered /Library/Ruby/Gems/1.8/gems/actionpack-3.0.3/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (10.6ms)
Rendered /Library/Ruby/Gems/1.8/gems/actionpack-3.0.3/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (16.1ms)
ビデオテーブルと国テーブルは、HABTMを介して参加していません。 countries_videosテーブルが見つかりません。私は何が欠けていますか?
あなたは 'countries_videos'テーブルを移行しましたか? –
HABTM関係が暗示している関係のテーブルに外部キーが設定されていますか? –