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

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

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

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

Q&A

解決済

1回答

235閲覧

wrong number of arguments (5 for 1)エラー(rails)

yamady

総合スコア176

Ruby on Rails

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

0グッド

0クリップ

投稿2017/12/01 01:27

いつもお世話になっておりますm(_ _)m

登録しているユーザー同士で評価をし合えるようなシステムを作りたいと考えています。
下記のような見慣れないエラーが出てきてしまい困っています。呼び出し側の引数とメソッド側の引数が異なっているということだそうなのですが、いまいち理解に苦しんでいます。

エラー文

Ruby

1wrong number of arguments (5 for 1) 2 3 def create_params 4 params.require(:id, :rate, :content, :user_id, :reviewed_id) 5 end 6 7{"utf8"=>"✓", 8"review"=>{"reviewed_id"=>"1", "user_id"=>"2", "rate"=>"3", "content"=>"こんにちは"}, 9 "commit"=>"レビューを登録する", 10 "id"=>"1"}

ソースコード

review.rb(モデル)

Ruby

1class Review < ApplicationRecord 2 belongs_to :user 3 belongs_to :reviewed, class_name: "User", foreign_key: :reviewed_id 4end

reviews_controller.rb(コントローラー)

Ruby

1class ReviewsController < ApplicationController 2 before_action :set_review, only: [:edit, :update, :destroy] 3 before_action :correct_user, only: [:edit, :destroy] 4 5 def new 6 @user = User.find(params[:id]) 7 if signed_in? 8 @review = current_user.reviews.build 9 else 10 redirect_to new_user_registration_path 11 end 12 end 13 14 def create 15 @review = current_user.reviews.create(create_params) 16 if @review.save 17 flash[:success] = "レビューが登録されました!" 18 redirect_to root_path 19 else 20 flash[:alert] = "レビューの登録に失敗しました。" 21 render 'new' 22 end 23 end 24 25 def edit 26 end 27 28 def update 29 if @review.update_attributes(create_params) 30 flesh[:success] = "レビューが更新されました!" 31 redirect_to root_path 32 else 33 flash[:alert] = "レビューの編集に失敗しました。" 34 render 'edit' 35 end 36 end 37 38 def destroy 39 @review.destroy 40 flash[:success] = "レビューが削除されました。" 41 redirect_to request.referrer || root_url 42 end 43 44 private 45 46 def create_params 47 params.require(:id, :rate, :content, :user_id, :reviewed_id) 48 end 49end

マイグレーションファイル(review)

Ruby

1class CreateReviews < ActiveRecord::Migration[5.1] 2 def change 3 create_table :reviews do |t| 4 t.integer :rate 5 t.text :content 6 t.references :user, foreign_key: true 7 t.references :reviewed, foreign_key: true 8 9 t.timestamps 10 end 11 end 12end

view

Ruby

1 <%= form_for(@review) do |f| %> 2 <%= f.hidden_field :reviewed_id, value: @user.id %> 3 <%= f.hidden_field :user_id, value: current_user.id %> 4 <div class="rate_form"> 5 <div class="form-group"> 6 <label>5段階評価 </label> 7 <div class="form-control"> 8 <div id="star"></div> 9 <%= f.hidden_field :rate %> 10 </div> 11 </div> 12 <div class="form-list"> 13 <label>レビュー内容</label> 14 <%= f.text_area :content, class: "form-control " %> 15 </div> 16 </div> 17 <%= f.submit "レビューを登録する", class: "btn submit" %> 18 <% end %>

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

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

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

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

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

guest

回答1

0

ベストアンサー

投稿2017/12/01 01:35

namenamenameko

総合スコア234

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

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

yamady

2017/12/01 04:09

初歩的なエラーでした。。汗 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問