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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

Ruby on Rails

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

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

1回答

2277閲覧

Rails acts-as-taggable-on について

NishidaRyu416_

総合スコア113

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

Ruby on Rails

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

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2016/12/17 12:47

#導入にあたりエラー
エラーページ

ruby

1##viewにて 2 3<p><%="#{@word.tag_list.name}"%></p>
##コントローラ class WordsController < ApplicationController before_filter :set_search before_action :set_params, only: [:show, :edit, :update, :destroy] before_action :correct_user, only: [:edit, :update,:destroy] def show end def index @words=Word.all @search = Word.ransack(params[:q]) @words_result = @search.result #この行を修正 respond_to do |format| format.html # index.html.erb format.json { render json: @words_result} end end def new @words = Word.new end def create word=words_params word.each do |word| @words = Word.create word end if @words.save flash[:success] = "success!" redirect_to @words else render 'new' end end def edit end def update if @word.update(word_params) flash[:success] = "success!" redirect_to @word else render 'edit' end end def destroy @word.destroy flash[:success] = "Words deleted" redirect_to userwords_user_path(current_user) end def add @words = Word.new end private def words_params params.require(:words).map { |words| words.permit(:user_id, :title,:answer, :question,:image,:tag_list) } end def word_params params.require(:word).permit(:user_id, :title,:answer, :question,:image,:tag_list) end def set_params @word = Word.find(params[:id]) end def correct_user #@word = Word.find(params[:id]) redirect_to root_path if @word.user != current_user end end

ruby

1class Word < ActiveRecord::Base 2 acts_as_taggable 3 validates :question,presence:true,length: { minimum: 2 } 4 validates :answer,presence:true,length: { minimum: 2 } 5 validates :answer ,presence:true,length:{minimum:2} 6 validates :title ,presence:true,length:{minimum:2} 7 8 belongs_to :group 9 belongs_to :user 10 has_many :favorites, dependent: :destroy 11 12 def favorite?(user) 13 favorites.where(user_id: user.id).exists?# exists?の説明 user.idが一致する人を探す。いたら、true いなかったら false 14 end 15end 16

ruby

1irb(main):024:0* Word.first.tag_list 2 Word Load (0.9ms) SELECT "words".* FROM "words" ORDER BY "words"."id" ASC LIMIT 1 3 ActsAsTaggableOn::Tagging Load (0.3ms) SELECT "taggings".* FROM "taggings" WHERE "taggings"."taggable_id" = ? AND "taggings"."taggable_type" = ? [["taggable_id", 3], ["taggable_type", "Word"]] 4 ActsAsTaggableOn::Tag Load (0.2ms) SELECT "tags".* FROM "tags" INNER JOIN "taggings" ON "tags"."id" = "taggings"."tag_id" WHERE "taggings"."taggable_id" = ? AND "taggings"."taggable_type" = ? AND (taggings.context = 'tags' AND taggings.tagger_id IS NULL) [["taggable_id", 3], ["taggable_type", "Word"]] 5=> []

上記のようにタグが保存されてるか曖昧だが、一応、エラーページでは入力したものが保存されてるらしくエラーとなる。
確認したい点として、viewでのエラーの修正方法、rails cでの確認通り保存されていないのか、それともエラーページでの通り保存されているのか
2点について回答よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

tag_list
は読んで字のごとくlist(array)を返します
もちろんarrayにname methodなどあるはずもなく

ruby

1<p><%="#{@word.tag_list.join(',')}"%></p>

とかすればいいのでは?

とりあえず、エラーメッセージを読みましょう上半分は書いてあります

投稿2016/12/19 01:13

moke

総合スコア2241

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問