【发布时间】:2018-03-13 19:05:03
【问题描述】:
我正在关注 railscasts tokenfield 修改后的 @258 视频。看起来它使用rails 3。
在处理它时,在我设置了很多通过关联并将作者 ID 拆分为“,”后,我陷入了困境。我使用的是 rails 4.2.8 版本。
错误:
书籍中的 NoMethodError#new
显示 /home/nicholas/labs/tokenfield-258/app/views/books/_form.html.erb 提出第 21 行的位置:
用于#的未定义方法`author_tokens'
_form.html.erb
<div class="field">
<%= f.label :author_tokens, "Authors" %><br />
<%= f.text_field :author_tokens, data: {load: @book.authors} %>
</div>
books_controller.rb
def book_params
params.require(:book).permit(:name,:author_tokens)
end
book.rb
class Book < ActiveRecord::Base
has_many :bookauthors
has_many :authors, through: :bookauthors
def author_tokens=(ids)
self.author_ids = ids.split(',')
end
end
我收到错误消息为未定义的方法 `author_tokens' for # created_at: nil, updated_at: nil>
谁能帮我解决这个问题? 我使用的是 rails 4.2.8 版本。
【问题讨论】:
-
在 book.rb 中添加 attr_reader :author_tokens 解决了这个问题。