質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

1回答

391閲覧

gem 'acts-as-taggable-on'において、tag_listがundefined methodとなってしまう

sakurasaku

総合スコア15

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2017/09/16 02:58

環境はrails5です。gem 'acts-as-taggable-on'において、tag_listがundefined methodとなってしまう状態です。なお、既にテーブル内にデータは保存できております。

view内の入力フォームは下記となっております。

ruby

1 <div class="field"> 2 <%= i.label :tag_list, "Tags (separated by commas)" %><br> 3 <%= i.text_field :tag_list %> 4 </div>

これが、tags内において、下記のように

イメージ説明

taggings内においては下記のような状態です。

イメージ説明

しかし、show.html.erbにおいて、下記コードを記載して一覧表示しようとすると、tag_listがundefined methodとなってしまいます。

ruby

1<p>Tags: <%= @author.tag_list %></p>

公式チュートリアルには記載されておりませんでしたが、こちらの記事( https://stackoverflow.com/questions/15503045/tag-list-not-showing-up-in-form-rails )などを参考にして、categoryのモデル内に下記を書いてみたりもしましたが、今度はtagsに対してerrorが表示されてしまいました。

def tag_list self.tags.map(&:name).join(', ') end

なお、categoryモデルはbelongs_toとなっている状態です。

ruby

1class Category < ApplicationRecord 2 belongs_to :author, optional: true, required:true 3 acts_as_taggable 4end

ruby

1class Author < ApplicationRecord 2 has_many :categories, inverse_of: :author 3 accepts_nested_attributes_for :categories, allow_destroy: true 4end 5

そのため、パラメータについては、authorのコントローラ内に下記のように記載しております。(念のため:tag_listを2箇所に記載したりもしました)

ruby

1def author_params 2 params.require(:author).permit(:user_id, :tag_list, 3 categories_attributes: [:id, :name, :number, :tag_list, :_destroy]) 4end

もし、解決法の糸口だけでも思い当たる方がいらっしゃれば、ご教示いただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

Authorモデルがタグ管理できるようになっていないので、author.tag_listが存在しません。
どういう表示をしたいのかは分かりませんが
Authorモデルにact_as_taggableを足す必要があるのではないでしょうか。

投稿2017/09/16 15:59

hellomartha

総合スコア329

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問