2017-06-07 32 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 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:

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

你可能正在使用強大的參數,顯示控制器代碼,並在那裏引發錯誤確切的片斷.. –

+0

你能告訴我們則params的視圖中的價值? –

回答

0

也許你應該轉換PARAMS

{"test"=>"hb", "test"=>"hb" }.symbolize_keys 
:用這個命令 'symbolize_keys'

例散列

回報

{test: "hb", test: "hb" } 
相關問題