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

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

ただいまの
回答率

89.69%

更新が動きません。パラメータが Unpermitted parametersとなってしまいます。。。

受付中

回答 0

投稿

  • 評価
  • クリップ 0
  • VIEW 264

Haristo

score 4

 更新が動きません。パラメータが Unpermitted parametersとなってしまいます。。。 

ruby ruby on railsにてアプリを作っているのですが、更新を実行しようとする際にskill controllerは”updated successfully”と表示されますがデータベース上に反映されません。ストロングパラメータのところがおかしいと思うのですが何をしても変わりません。。。ご教授いただけますでしょうか。

 edit.html.erb

<%= form_for @skill do |f| %>

<%= f.label:skill_type %>
<%= text_field :skill_type, value=@skill.skill_type, :placeholder => 
@skill.skill_type %>

<%= f.label:tech %>
<%= text_field :tech, value=@skill.tech,:placeholder => @skill.tech %>

<%= f.label:web_name %>
<%= text_field :web_name, value=@skill.web_name,:placeholder => 
@skill.web_name %>

<%= f.label:web_url %>
<%= text_field :web_url, value=@skill.web_url,:placeholder => 
@skill.web_url %>

<%= f.label:web_image %>
<%= text_field :web_image, value=@skill.web_image,:placeholder => 
@skill.web_image %>

<%= f.label:experience %>
<%= text_field :experience, value=@skill.experience,:placeholder => 
@skill.experience %>

<%= f.submit %>
<% end %>

skills_controller

  class SkillsController < UsersController
  def edit
    @user=User.find_by(id:params[:id])
    @skill=Skill.find_by(user_id:@user.id)

  end


  def update
    @skill=Skill.find_by(id:params[:id])
    if @skill.update_attributes(skills_params)
      flash[:success]="Updated Successfully"
      redirect_to users_url
    else
      flash[:danger]="no infomation"
      render @skill
    end
  end

  private
  def skills_params
    params.permit(:skill_type, :tech, :web_name, :web_url, :web_image, :experience)
  end

end


エラーメッセージ

Processing by UsersController#show as HTML
  Parameters: {"id"=>"5"}
  User Load (0.1ms)  SELECT  "users".* FROM "users" WHERE "users"."id" 
= ? LIMIT ?  [["id", 5], ["LIMIT", 1]]
  Skill Load (0.2ms)  SELECT  "skills".* FROM "skills" WHERE 
"skills"."user_id" = ? LIMIT ?  [["user_id", 5], ["LIMIT", 1]]
  Rendering users/show.html.erb within layouts/application
  Rendered users/show.html.erb within layouts/application (1.8ms)
  User Load (0.1ms)  SELECT  "users".* FROM "users" WHERE "users"."id" 
= ? LIMIT ?  [["id", 10], ["LIMIT", 1]]

Processing by SkillsController#edit as HTML
  Parameters: {"id"=>"5"}
  User Load (0.1ms)  SELECT  "users".* FROM "users" WHERE "users"."id" 
= ? LIMIT ?  [["id", 5], ["LIMIT", 1]]
  Skill Load (0.1ms)  SELECT  "skills".* FROM "skills" WHERE 
"skills"."id" = ? LIMIT ?  [["id", 5], ["LIMIT", 1]]
  Rendering skills/edit.html.erb within layouts/application
  Rendered skills/edit.html.erb within layouts/application (1.9ms)
  User Load (0.1ms)  SELECT  "users".* FROM "users" WHERE "users"."id" 
= ? LIMIT ?  [["id", 10], ["LIMIT", 1]]

Processing by SkillsController#update as HTML
Parameters{"utf8"=>"✓","authenticity_token"=>"XrbQqewGHBC8yoFHFg9tkg9sCTtscV+QjUMgaw2pdXEsUk+NiCJHSHVkj/N/bhjD1uaExeop4uSXb6hCCKGD/Q==", "skill_type"=>{"0"=>"1"}, "tech"=>{"shi"=>"aaaa"}, "web_name"=>{"ssasdesilgffgfo"=>"aaaaaa"}, "web_url"=>{"googleeee.com"=>"aaa@aaaa"}, "web_image"=>{"dfsafsafasfasdf"=>"bbbbb"}, "experience"=>{"javaaaaaa"=>"sssss"}, "commit"=>"変更する", "id"=>"5"}
  Skill Load (0.1ms)  SELECT  "skills".* FROM "skills" WHERE "skills"."id" = ? LIMIT ?  [["id", 5], ["LIMIT", 1]]
Unpermitted parameters: :utf8, :_method, :authenticity_token, :skill_type, :tech, :web_name, :web_url, :web_image, :experience, :commit
   (0.1ms)  begin transaction
  User Load (0.1ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = ? LIMIT ?  [["id", 5], ["LIMIT", 1]]
   (0.0ms)  commit transaction


user controllerというのものもありまして、user_idを外部キーに相互に繋げているのですが、そちらも原因の一つなのでしょうか。。。
よろしくお願いします

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

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

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

  • ただいまの回答率 89.69%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる