私はrailscasts tokenfield @ 258ビデオを改訂しています。それはレール3を使用しているように見えます。トークンフィールド - 定義されていないメソッド 'author_tokens' for#<book id:nil、name:nil、created_at:nil、updated_at:nil>
私が設定した後、私は多くの関連付けを行い、著者IDを '、'で区切ってしまいました。私はレール4.2.8のバージョンを使用しています。
エラー:
NoMethodError in Books#new
Showing /home/nicholas/labs/tokenfield-258/app/views/books/_form.html.erb where line #21 raised:
undefined method `author_tokens' for #
_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
#created_atのための未定義メソッド `author_tokens 'としてエラーメッセージが表示されます:nil、updated_at:nil>
どうすればこの問題を解決できますか? 私はレール4.2.8のバージョンを使用しています。
attr_readerを追加:book.rbのauthor_tokensが問題を解決しました。 – nekolus