#導入にあたりエラー
エラーページ
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点について回答よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。