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

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

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

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

Q&A

0回答

1737閲覧

permitted: false の解決法

ERICA41175231

総合スコア0

Ruby on Rails 6

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

0グッド

0クリップ

投稿2020/10/13 22:52

編集2020/10/14 13:15

前提・実現したいこと

タイトルに記載しました、 permitted:falseのエラーでつまずいています。
調べてみると、ストロングパラメータの記載に問題があるのだということが分かったのですが、
下記に記載している通り、users_controller.rbの下部(private)にparams.requireを追記したのですが変わりません。

ご教授のほど、よろしくお願いいたします!!

発生している問題・エラーメッセージ

permitted: false

該当のソースコード

<ActionController::Parameters {"utf8"=>"✓", "authenticity_token"=>"0nEBSbJ5+7+dhMOi8avmT7lpopkdZgqIFGreJnWP2alMQ+dMH/TKIMi8y+YM/ZXf/JI8WQBJJ3AIKesxe0KTpA==", "name"=>"べべべ", "image"=>#<ActionDispatch::Http::UploadedFile:0x00007f86e0469538 @tempfile=#<Tempfile:/var/folders/4j/366dq7y542n_xt2k1d5bq32w0000gn/T/RackMultipart20201014-2391-13b8a4d.png>, @original_filename="スクリーンショット 2020-10-02 18.16.34.png", @content_type="image/png", @headers="Content-Disposition: form-data; name=\"image\"; filename=\"\xE3\x82\xB9\xE3\x82\xAF\xE3\x83\xAA\xE3\x83\xBC\xE3\x83\xB3\xE3\x82\xB7\xE3\x83\xA7\xE3\x83\x83\xE3\x83\x88 2020-10-02 18.16.34.png\"\r\nContent-Type: image/png\r\n">, "bgimage"=>#<ActionDispatch::Http::UploadedFile:0x00007f86e0490e58 @tempfile=#<Tempfile:/var/folders/4j/366dq7y542n_xt2k1d5bq32w0000gn/T/RackMultipart20201014-2391-1exzwwp.jpg>, @original_filename="sean-o-KMn4VEeEPR8-unsplashのコピー.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"bgimage\"; filename=\"sean-o-KMn4VEeEPR8-unsplash\xE3\x81\xAE\xE3\x82\xB3\xE3\x83\x92\xE3\x82\x9A\xE3\x83\xBC.jpg\"\r\nContent-Type: image/jpeg\r\n">, "intro"=>"かか", "controller"=>"users", "action"=>"update", "id"=>"3"} permitted: false>

ソースコード

rails

1class UsersController < ApplicationController 2 3 before_action :set_user, only: [:show,:update,:edit,:delete] 4 def new 5 @user = User.new 6 end 7 8 def create 9 @user = User.new(name: params[:name], email: params[:email], password: params[:password], image: "emma-smith-NS_DMD4rEjk-unsplash.jpg", bgimage: "自然壁画.jpg") # 実装は終わっていないことに注意! 10 # binding.pry 11 if @user.save 12 session[:user_id] = @user.id 13 flash[:success] = "Welcome to this app!" 14 redirect_to("/home/about") 15 else 16 flash[:notice] = "Your email is already existed" 17 render 'users/new' 18 end 19 end 20 21 def show 22 @users = User.find_by(id: params[:id]) 23 # binding.pry 24 end 25 26 def edit 27 @users = User.find_by(id: params[:id]) 28 29 end 30 31 def update 32 33 @users = User.find_by(id: params[:id]) 34 @users.name = params[:name], 35 @users.image = params[:image], 36 @users.bgimage = params[:bgimage], 37 @users.intro = params[:intro] 38 39 if @users.save 40 # binding.pry 41 flash[:notice] = "編集しました" 42 redirect_to("/users/#{@users.id}/show") 43 else 44 render("/home/about") 45 46 end 47 48 end 49 50 def login_form 51 end 52 53 def login 54 @user = User.find_by(email: params[:email]) 55 if @user && @user.authenticate(params[:password]) 56 session[:user_id] = @user.id 57 flash[:success] = "welcome Back" 58 redirect_to ("/home/about") 59 else 60 @error_message = "Wrong email or password" 61 @email = params[:email] 62 @password = params[:password] 63 render("/users/login_form") 64 end 65 end 66 67 def logout 68 session[:user_id] = nil 69 flash[:notice] = "Logout" 70 redirect_to("/home/about") 71 end 72 73 74 private 75 76 77 def user_params 78 params.require(:user).permit(:name, :image, :bgimage, :intro) 79 end 80 81def set_user 82 #特定データの取得 83 @user = User.find_by(params[:id]) 84 end 85end 86

erb

1<div class="edit_profile-wrapper"> 2<%= @users.name %> 3<%= form_tag("/users/#{@users.id}/update", {multipart: true}) do %> 4 5<div class="edit_profile-contents"> 6 <p>名前</p> 7 <label for="name"></label> 8 <input type="text" name="name" value="<%=@users.name%>" required> 9 </div> 10<div class="edit_profile-contents"> 11 <p>メインアイコン</p> 12 <label for="image_name"></label> 13 <input type="file" name="image"> 14 </div> 15<div class="edit_profile-contents"> 16 <p>背景画像</p> 17 <label for="image_name"></label> 18 <input type="file" name="bgimage"> 19 </div> 20 <div class="edit_profile-contents"> 21 <p>自己紹介文</p> 22 <textarea class="input-text" type="text" placeholder=" enter your introduction!" name="intro" value="<%=@users.intro%>"></textarea> 23 </div> 24 <input type="submit" value="submit" class="btn btn-border-shadow btn-border-shadow--color2"> 25 26<%end%> 27</div>

試したこと

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

no1knows

2020/10/14 00:11

エラーは全て記載してください。 また質問のコードは<code>タグを利用して見やすくしてください。
m.ts10806

2020/10/14 00:28

現状のコードだけだと引数4つ与えてるのは一ヶ所しかないようですが、そのあたりは認識されてますか?
coco_bauer

2020/10/14 00:44

「引数が1つのメソッドなのに、引数が4つも書かれてます。引数の個数が合いません。」というエラーメッセージですから、メソッドの定義を確認して、引数を1つにすれば質問に書かれたエラーは消えると思います。 それで、質問者が意図した動作になるかどうかは判りませんが。 m.ts10806さんが指摘されているように、質問のコードで4つの引数が与えられているメソッドは、"@users.update"だけですから、このメソッドの定義を起点に調べていくのが良いと思います。
ERICA41175231

2020/10/14 12:51

みなさま、情報量が足りない中ご指摘ありがとうございます!! コードの書き方を直してみると新たなエラーが発生したので新たに質問記事を作成したいと思います!!
m.ts10806

2020/10/14 12:56

質問は編集できるので新たに投稿するのではなく当投稿を編集してください。 あとコードやエラーはマークダウンのcode機能を利用してご提示ください。 https://teratail.com/questions/238564
m.ts10806

2020/10/14 13:17

うーん・・回答ついてないとはいえ・・・ごっそり変わるのも、ちょっと。 2020/10/14 21:51 のコメントだけだと元の現象が解決したかどうか分からなかったので「編集して」と依頼しましたが、解決したのでしたら自己解決にした方が良かったかもしれませんね。
ERICA41175231

2020/10/14 13:23

そうですよね。。内容変わりすぎるから編集になるのかなあと思いつつでしたがやはりこれは新たな質問になりますよね。。次回以降気をつけます!ご指摘ありがとうございます!! 編集した記事の前に書いていた質問に関しては、解決しました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問