2013-10-30 32 views
0

我無法找到爲什麼我的強參數沒有保存在數據庫中的原因。我不使用腳手架來創建我的模型,而是使用rails g model Customer Name:string Email:string命令。使用rails console時也會添加。爲什麼我的要求強參數沒有拿起?

這是我的網頁控制器

class PagesController < ApplicationController 

def Home 

end 

def Login 

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

end 
private 
def attr @customer=Customer.find(params[:id]) end 
def master params.require(:customer).permit(:Name,:Email) end end 

我customer.rb文件

class Customer < ActiveRecord::Base 

    has_many :Products,through: :Order 

end 

開發日誌,而試圖挽救一個新的客戶。

Started GET "/Login?Customer%5BName%5D=s&Customer%5BEmail%5D=csc" for 127.0.0.1 at 2013-10-31 04:48:49 +0530 Processing by PagesController#Login as HTML Parameters: 

{"Customer"=>{"Name"=>"s", "Email"=>"csc"}} (0.1ms) begin transaction SQL (0.5ms) 

INSERT INTO "customers" ("created_at", "updated_at") VALUES (?, ?) [["created_at", Wed, 30 Oct 2013 23:18:49 UTC +00:00], ["updated_at", Wed, 30 Oct 2013 23:18:49 UTC +00:00]] (72.4ms) commit transaction Rendered pages/Login.html.erb within layouts/application (0.1ms) Completed 200 OK in 82ms (Views: 5.7ms | ActiveRecord: 73.0ms) 

同時打開網頁瀏覽器,我得到的錯誤:

ActionController::ParameterMissing in PagesController#Login 
param not found: customer 
Extracted source (around line #17): 
+1

您的字段應該是小寫字母,名稱和電子郵件地址,*不是*名稱和電子郵件地址。這件事很重要,Rails的爭論很重要。 – meagar

+0

您好嘗試了一切,但它會拋出一個錯誤的param:客戶找不到。我在這裏做錯了,除了大小寫敏感的錯誤,因爲我試圖做一個新的測試導軌應用程序與小寫,但仍然無法正常工作。 – user2526795

回答

0

案事宜。您在Customer傳遞,但要求customer。這些是不同的參數。切換到小寫,除了實際的類。

0

在您的params.require中,您指定customer,在您的參數中有Customer。這有所作爲。作爲一個經驗法則:總是使用小寫字母。

+0

我試過你的建議。創建一個全新的rails應用程序,小寫。仍然錯誤persits該參數:客戶找不到。 – user2526795

相關問題