我遇到了未定义方法`to_key'
的问题这是我的books_controller.rb
class BooksController < ApplicationController
def index
@books = Book.where(user_id: current_user.id)
end
end
和我的索引页面如下。
index.html.erb
<div>
<%= form_for @books do |f| %>
...
...
<% end %>
</div>
现在,当我要访问索引页面时,我收到了如下错误。
undefined method `to_key' for #<Book::ActiveRecord_Relation:0x007fb709a6a8c0>
答案 0 :(得分:14)
index
通常会返回一个集合。事实上,你的控制器符合。但是,您的视图会尝试为其定义表单。你发现,这不会成功。表单适用于实体,不适用于集合。该错误在您的视图中以及您希望如何处理index
。
答案 1 :(得分:8)
应该是:
class BooksController < ApplicationController
def index
@book = Book.find_by_id(2)
end
或
def index
@book = Book.new
end