has_manyの関連付けがあり、ユーザーのWebサイトを取得したいのですが、コンソールuser.websitesからすべてのWebサイトのリストが表示されますが、コントローラーで試してみると次のようになります。
def index
@websites = User.find(params[:user_id]).websites
end
エラーが発生します:編集
Rendered C:/Ruby193/lib/ruby/gems/1.9.1/gems/actionpack-3.2.2/lib/action_dispatch/middleware/templates/rescues/_trace.erb (3.0ms)
Rendered C:/Ruby193/lib/ruby/gems/1.9.1/gems/actionpack-3.2.2/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (1.0ms)
Rendered C:/Ruby193/lib/ruby/gems/1.9.1/gems/actionpack-3.2.2/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (99.0ms)
←[1m←[36mUser Load (2.0ms)←[0m ←[1mSELECT `users`.* FROM `users` WHERE `users`.`id` =67 LIMIT 1←[0m
Completed 500 Internal Server Error in 2ms
ActiveRecord::RecordNotFound (Couldn't find User without an ID):
app/controllers/websites_controller.rb:10:in `index'
しかし、私はログインしていて、id = 67のユーザーがいます:
User.find(67)
=> #<User id: 67, first_name: "admin", ...
私からしてみれば:
<% @websites.each do |website| %>
<%= website.name %>
<%= website.url %>
<p> <%= website.category %>
<%= website.language %>
<%end%>
EDIT。インデックスビューでparams[:user_id]を調べようとしましたが、何も表示されませんでした。
<%= params[:user_id]%>
エラーが発生するのはなぜですか?