2017-06-07 12 views
-2

私はredditに似たRubyアプリケーションを開発しており、ユーザーのサインアップ機能を追加する際にこのエラーが発生しました。私はそうのようなコードを変更し、エラーを修正するにはSymbolからInteger Rails 5への暗黙的な変換がありません

<%= button_to "Yes", {controller: 'users', 
          action: 'create', 
          params: params}, class: 'btn btn-success' %> 

:私は、エラーの原因となっている次のコード行でビューをコミットしている

<%= button_to "Yes", { 
         controller: 'users', 
          action: 'create', 
          params: { 
           user { 
            name: @user.name, 
            email: @user.email, 
           password: @user.password, 
        password_confirmation: @user.password_confirmation 

            } 
            } 
         }, class: 'btn btn-success' %> 

これは、問題を修正するが、私は希望します最初の行がなぜ機能しないのかを理解し、これを実装する最善の方法についてアドバイスを得ることができます。

@user.name =params[:user][:name]にエラーがスローされます。ここ
は、ユーザーのコントローラでいっぱいDEFです:

def create 
    @user = User.new 
    @user.name = params[:user][:name] 
    @user.email = params[:user][:email] 
    @user.password = params[:user][:password] 
    @user.password_confirmation = params[:user][:password_confirmation] 
end 

私のサーバーのログから、私は、ユーザーがのparamsで長い文字列に変更されている見ることができます:たぶん、あなたのparamsを変換する必要があり

Parameters {"authenticity_token"=>"xSeWlcW6Ix5kciNGi2/xAep2aRq0CmefI6ln‌​ieQutlolAsk/qXM+mGvW‌​ixvNfTMedHnstWDd29mb‌​MThGF1FCqg==", "commit"=>"Sign up", "user"=>"email=ja%40j.com&name=jasonj&password=jjjjjj&passwo‌​rd_confirmation=jjjj‌​jj", "utf8"=>"✓"} 
+0

あなたはおそらく、あなたが私達にあなたのビューでのparamsの値を表示することができます –

+0

...あなたのコントローラのコードと、エラーが発生した正確なスニペットを示し、強力なパラメータを使用していますか? –

答えて

0

このコマンドは 'symbolize_keys'

例でハッシュ:

{"test"=>"hb", "test"=>"hb" }.symbolize_keys 

リターン

{test: "hb", test: "hb" } 
関連する問題