我正在关注railscasts tokenfield修订版@ 258视频。看起来它使用rails 3.
在处理它的过程中,我在设置了很多通过关联并且将作者ID分成','后陷入困境。我正在使用rails 4.2.8版本。
错误:
Book#new
中的NoMethodError显示 /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&#39; for#created_at:nil,updated_at:nil&gt;
有人可以帮我解决这个问题吗? 我正在使用rails 4.2.8版本。
答案 0 :(得分:0)
错过了这一行attr_reader:author_tokens book.rb.现在它有效。
class Book < ActiveRecord::Base
has_many :bookauthors
has_many :authors, through: :bookauthors
attr_reader :author_tokens
def author_tokens=(ids)
self.author_ids = ids.split(",")
end
end