いつもお世話になっております。
Rails5で投稿のお気に入り機能を作成しているのですが、
バリデートエラーになってしまうようでお気に入りの処理がうまく行かずに困っています。
ruby
1#user.rb 2class User < ApplicationRecord 3 devise :database_authenticatable, :registerable, 4 :recoverable, :rememberable, :trackable, :validatable 5 6 has_many :favorites, dependent: :destroy 7 has_many :message, through: :favorites 8end
ruby
1#message.rb 2class Message < ApplicationRecord 3 validates :contents, presence: true 4 5 has_many :favorites, dependent: :destroy 6 has_many :user, through: :favorites 7end
ruby
1#favorite.rb 2class Favorite < ApplicationRecord 3 belongs_to :user 4 belongs_to :message 5end
ruby
1#favorite_controller.rb 2class FavoriteController < ApplicationController 3 4 def create 5 @favorite = Favorite.new(messages_id: params[:id], user_id: current_user.id) 6 7 if @favorite.save 8 redirect_to home_path, success: 'お気に入り登録しました!' 9 else 10 redirect_to home_path, danger: 'お気に入り登録ができませんでした' 11 end 12 end 13 14 def destroy 15 @favorite = Favorite.find(params[:id]) 16 if @favorite.destroy 17 redirect_to home_path 18 end 19 end 20 21end 22
ruby
1#routes.rb 2Rails.application.routes.draw do 3 devise_for :users 4 resources :favorite, only: [:destroy] 5 root 'home#index' 6 7 scope :messages do 8 match '', to:'messages#index', via:'get', as:'messages' 9 match '/show', to:'messages#show', via:'get', as:'messages_show' 10 match '/new', to:'messages#new', via:'get', as:'messages_new' 11 match '/create', to:'messages#create', via:'post', as:'messages_create' 12 match '/:id/add', to:'favorite#create', via:'post', as:'add_favorite' 13 end 14end 15
html
1#favorite.html.erb 2<div class="col-xs-10 col-xs-offset-1 message text-center"> 3 <%= @message.contents %> 4</div> 5 6<div class="col-xs-12 text-right"> 7 <%= link_to "お気に入り登録", add_favorite_path(@message.id), method: :post %> 8</div> 9
お気に入りのボタンを押した時のログは以下です
Started POST "/messages/10/add" for ::1 at 2017-12-31 06:48:01 +0900 Processing by FavoriteController#create as HTML Parameters: {"authenticity_token"=>"+iknfybATjIqBKiZazVXnVCSyLTQzV8kIuHV5gubBu+ObC8XbfkYyIDl6miuwgImWScRY9dWenYwFsIlGqM7Ng==", "id"=>"10"} User Load (0.4ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 2 ORDER BY `users`.`id` ASC LIMIT 1 (0.2ms) BEGIN User Load (0.5ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 2 LIMIT 1 (0.2ms) ROLLBACK Redirected to http://localhost:3000/home Completed 302 Found in 63ms (ActiveRecord: 10.0ms)
初歩的な質問で申し訳ないですが、ご教授いただければと思います。
どうぞよろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/12/31 02:04