2013-10-30 73 views
0

Rails新手問題。我無法找到爲什麼我的強參數沒有保存在數據庫中的原因。我沒有使用腳手架來創建我的模型,而是使用rails g model customer name:string email:string命令。使用rails控制檯時也會添加相同的內容。沒有保存在數據庫中的強參數

My customer.rb 
class Customer < ActiveRecord::Base 
    has_many :products,through: :order 
end 

我UserController的

class UserController < ApplicationController 

    def login 
    @Customer=Customer.new(master) 
    @Customer.save 
    end 

    def home 
    end 

    private 

    def master 
    params.require(:customer).permit! 
    end 
end 

my html code: 
<form action="login"> 
    name <input type="text" name="customer[name]"> 
    email<input type="email" name="customer[email]"> 
    <input type="submit" value="enter"> 
</form> 

我仍然得到參數的時錯誤:客戶找不到

+0

您確定該模型在保存時有效嗎? – polmiro

+0

正常工作與軌道控制檯。仍然無法找到任何相關的東西。 – user2526795

回答

0

作爲answer of user1854802的補充,您還應該再看看params

使用#permit!方法,您可以進行質量分配。因此params哈希中給出的參數將被允許。使用#permit(不帶彈出式!)方法來篩選您想要在您的params中允許的屬性。例如:

params.require(:customer).permit(:name, :email) 

這確保了參數customer存在於params和只有customeremailname屬性是允許的。

0

線條

@Customer=Customer.new(master) 
@Customer.save 

應該

@customer=Customer.new(master) 
@customer.save 

如果你想要的話,我可以在我正在處理的應用程序中的一個控制器中粘貼等價的行。 Pierre