コメント機能実装について
Q&A
Closed
解決したいこと
コメントできるようにしたい。
発生している問題・エラー
ActiveRecord::RecordInvalid in WaycommentsController#create
該当するソースコード
class WaycommentsController < ApplicationController
def create
@waycomment = Waycomment.create!(@waycomment_params)
redirect_to way_path(@way.id)
end
private
def waycomment_params
params.require(:waycomment).permit(:text).merge(user_id: current_user.id, way_id: params[:way_id])
end
end
class Way < ApplicationRecord
belongs_to :user
has_one_attached :image
has_one_attached :video
has_many :likes, dependent: :destroy
has_many :waycomments
def liked_by(user)
Like.find_by(user_id: user.id, way_id: id)
end
with_options presence: true do
validates :name
validates :text
end
end
class Waycomment < ApplicationRecord
belongs_to :way
belongs_to :user
end
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
def self.guest
find_or_create_by!(nickname: 'ゲスト', email: 'guest@gmail.com', text: 'ゲストです。') do |user|
user.password = SecureRandom.urlsafe_base64
end
end
has_many :ways
has_one_attached :image
has_many :likes
has_many :waycomments
with_options presence: true do
validates :nickname
validates :text
end
end
ソースコードを入力
Rails.application.routes.draw do
devise_for :users, controllers: {
registrations: 'users/registrations',
passwords: 'users/passwords'
}
devise_scope :user do
post 'users/guest_sign_in', to: 'users/sessions#new_guest'
end
root to: "concretes#index"
resources :ways do
resources :likes, only: [:create, :destroy]
resources :waycomments, only: [:create, :destroy]
end
resources :questions
resources :answers
resources :words
end
自分で試したこと
・スペルミスがないか確認。
・user,way,waycommentのバリデーションおよびアソシエーションの設定。
0