2012-04-14 42 views
1

我有一個奇怪的rails 3.2問題。當我提交表單是這樣的:提交後Rails POST params爲空?

<%= form_for @job, :url => job_preview_path do |f| %> 
<dl> 
    <dt><%= f.label :job_title, "Job Titel" %></dt> 
    <dd><%= f.text_field :job_title %></dd> 
    <dt>Checkbox please!</dt> 
    <dd><%= f.check_box :extra_featured %> </dd> 
</dl> 
<%= f.submit "Submit" %></p> 
<% end %> 

其中動作路線被定義爲

match 'job/preview' => 'jobs#preview', :as => :job_preview, :via => :post 

在POST則params的值留空提交除了check_box值之後。在提交後我的控制器中的操作中,我將這些參數重新分配給模型,以便我可以重新使用參數來保存條目。

def preview 
    @job = Job.new(params[:job]) 
end 

對這個奇怪的行爲有什麼建議嗎?我是盲目的,沒有看到錯誤?

+0

查看呈現的html並確保標題文本字段的html名稱是正確的。 – 2012-04-14 11:32:42

回答

2

你在Rails 3.2.3上嗎? Rails 3.2.3對Active Record的更改之一是「默認白名單所有屬性分配」。請參閱[ANN] Rails 3.2.3 has been released!

+0

謝謝,我會研究這一點。現在使用3.2.3! – Tronic 2012-04-16 08:15:53

+0

所以我看着它,無法修復錯誤。它不分配任何後期參數... – Tronic 2012-04-17 13:40:45

+0

你檢查了日誌嗎?帖子參數應該打印出來。或者你可以檢查params [:job]是否有任何數據。 – Yanhao 2012-04-18 01:36:46