railsにて情報共有アプリを作成しております。userモデルに自己紹介用のショートムービカラム(videoカラム)を有しています。問題が起きている点はuserを新規登録後にcontrollerのredirect_toが引数が違うとエラーを吐きます。新規登録時の必須入力項目として、username,email,password,video(アップローダにより)でございます。ソースコードはいかのとおりです。アドバイスお願いします
エラー内容
ArgumentError in UsersController#create
wrong number of arguments (given 2, expected 1)
ruby
1 2sign_in @user 3 flash[:success] = "Welcome to the Sample App!" 4 redirect_to @user #←ここで引数違いによる,giraエラーになる(given2 expected1) 5 else 6 render 'new' 7 end
ruby
1class UsersController < ApplicationController 2 before_action :signed_in_user, only: [:index,:edit, :update,:destroy, :following, :followers] 3 before_action :correct_user, only: [:edit, :update] 4 before_action :admin_user, only: :destroy 5 6 def index 7 @users = User.paginate(page: params[:page]) 8 end 9 10 def show 11 @user = User.find(params[:id]) 12 @microposts = @user.microposts.paginate(page: params[:page]) 13 end 14 15 def new 16 @user = User.new 17 end 18 19 def create 20 @user = User.new(user_params) 21 if @user.save 22 sign_in @user 23 flash[:success] = "Welcome to the Sample App!" 24 redirect_to @user 25 else 26 render 'new' 27 end 28 end 29 30def edit 31@user = User.find(params[:id]) 32end 33 34 35def update 36 @user = User.find(params[:id]) 37 if @user.update_attributes(user_params) 38 flash[:success] = "Profile updated" 39 redirect_to @user, notice: '更新しました。' 40 else 41 render 'edit' 42 end 43end 44 45 def destroy 46 User.find(params[:id]).destroy 47 flash[:success] = "User destroyed." 48 redirect_to users_url 49 end 50 51 def following 52 @title = "Following" 53 @user = User.find(params[:id]) 54 @users = @user.followed_users.paginate(page: params[:page]) 55 render 'show_follow' 56 end 57 58 def followers 59 @title = "Followers" 60 @user = User.find(params[:id]) 61 @users = @user.followers.paginate(page: params[:page]) 62 render 'show_follow' 63 end 64 65 private 66 67 def user_params 68 params.require(:user).permit(:name, :email, :password, :password_confirmation, :video) 69 end 70 71 def signed_in_user 72 unless signed_in? 73 store_location 74 redirect_to signin_url, notice: "Please sign in." 75 end 76 end 77 78 def correct_user 79 @user = User.find(params[:id]) 80 redirect_to(root_path) unless current_user?(@user) 81 end 82 83 def admin_user 84 redirect_to(root_path) unless current_user.admin? 85 end 86end 87
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。