前提・実現したいこと
rubyでairbnbのようなシェアリングシステムを作っています。
レビュー機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
レビューを書き込み、追加しようとすると以下のようなエラーが発生します。
該当のソースコード
ruby2.5.1
rails5.2.4
<guest_reviews_controller.rb>
class GuestReviewsController < ApplicationController
def create
# Step 1: Check if the reservation exist (camera_id, host_id, host_id)
# Step 2: Check if the current host already reviewed the guest in this reservation. @reservation = Reservation.where( id: guest_review_params[:reservation_id], camera_id: guest_review_params[:camera_id] ).first if !@reservation.nil? && @reservation.camera.user.id == guest_review_params[:host_id].to_i @has_reviewed = GuestReview.where( reservation_id: @reservation.id, host_id: guest_review_params[:host_id] ).first if @has_reviewed.nil? # Allow to review @guest_review = current_user.guest_reviews.create(guest_review_params) flash[:success] = "Review created..." else # Already reviewed flash[:success] = "You already reviewed this Reservation" end else flash[:alert] = "Not found this reservation" end redirect_back(fallback_location: request.referer)
end
def destroy
@guest_review = Review.find(params[:id])
@guest_review.destroy
redirect_back(fallback_location: request.referer, notice: "Removed...!")
end
private
def guest_review_params
params.require(:guest_review).permit(:comment, :star, :camera_id, :reservation_id, :host_id)
end
end
<schma.rb>
create_table "reviews", force: :cascade do |t|
t.text "comment"
t.integer "star", default: 1
t.integer "camera_id"
t.integer "reservation_id"
t.integer "guest_id"
t.integer "host_id"
t.string "type"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["camera_id"], name: "index_reviews_on_camera_id"
t.index ["guest_id"], name: "index_reviews_on_guest_id"
t.index ["host_id"], name: "index_reviews_on_host_id"
t.index ["reservation_id"], name: "index_reviews_on_reservation_id"
end
ruby '2.5.1'
gem 'rails', '> 5.2.4', '>= 5.2.4.3'> 3.11'
gem 'sqlite3'
gem 'puma', '
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '> 4.2'> 5'
gem 'turbolinks', '
gem 'jbuilder', '~> 2.5'
gem 'bootsnap', '>= 1.1.0', require: false
group :development, :test do
gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
end
group :development do
gem 'web-console', '>= 3.3.0'
gem 'listen', '>= 3.0.5', '< 3.2'
gem 'spring'
gem 'spring-watcher-listen', '~> 2.0.0'
end
group :test do
gem 'capybara', '>= 2.15'
gem 'chromedriver-helper'
end
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
gem 'bootstrap-sass', '~> 3.4.1'
gem 'devise'
gem 'toastr-rails'
gem 'jquery-rails', '4.3.1'
gem 'paperclip', '> 5.1.0'> 2.8'
gem 'aws-sdk', '
gem 'geocoder', '> 1.4'> 5.0'
gem 'jquery-ui-rails', '
gem "ransack", '~> 2.1.1'
gem 'carrierwave'
試したこと
migrationの打ち間違いがないか確認。
該当エラーをググってみたが見つかりませんでした。
足りないリソースあれば、提供させて頂きます。
よろしくお願いします。
あなたの回答
tips
プレビュー