2012-07-02 40 views
0

我剛纔的Submitting multiple forms in Rails回答了這導致了另一個問題。在我的表單中我有以下的(有相當多的):Rails窗體格式化

= hidden_field_tag :event_id, :value => @event.id 

.control-group 
    = label_tag :title 
    .controls 
    = select(:registration, "registrations[][title]", Registration::TITLE) 

和最後一行返回:

「註冊」=> [{ 「標題」=> { 「登記」 => 「先生」},

,而不是預期的:

「標題」=> 「MR」

我試着:

= select(:registration, "registrations[][title]", Registration::TITLE) 

它返回:

未定義的方法`註冊[] [標題]」爲#

並且還嘗試:

= select("registrations[][title]", Registration::TITLE) 

返回:

錯誤的參數數目(2 3)

看看下面的參數,事件(_id)是唯一的。有一次,則:標題奇怪開始,任何想法是什麼問題可能是?

{"utf8"=>"✓", 
"authenticity_token"=>"BQXm5fngW27z/3Wxy9qEzu6D8/g9YQIfBL+mFKVplgE=", 
"event_id"=>"7", 
"registrations"=>[{"title"=>{"registration"=>"Mr"}, 
"first_name"=>"Name1", 
"last_name"=>"Surname1", 
"company_name"=>"Company1", 
"designation"=>"Designation1", 
"landline"=>"Landline1", 
"cell"=>"Cell1", 
"email"=>"[email protected]", 
"member"=>{"registration"=>"No"}, 
"dietary"=>{"registration"=>"None"}, 
"specify"=>"None"}, 
{"first_name"=>"Name2", 
"last_name"=>"Surname2", 
"company_name"=>"Company2", 
"designation"=>"Designation2", 
"landline"=>"Landline2", 
"cell"=>"Cell2", 
"email"=>"[email protected]", 
"member"=>{"registration"=>"No"}, 
"dietary"=>{"registration"=>"None"}, 
"specify"=>"None", 
"title"=>{"registration"=>"Mr"}}, 
{"first_name"=>"Name3", 
"last_name"=>"Surname3", 
"company_name"=>"Company3", 
"designation"=>"Designation3", 
"landline"=>"Landline3", 
"cell"=>"Cell3", 
"email"=>"[email protected]", 
"member"=>{"registration"=>"No"}, 
"dietary"=>{"registration"=>"None"}, 
"specify"=>"None"}], 
"commit"=>"Submit registrations"} 

請不就是:飲食和:標題:成員以同樣的方式格式化。提前感謝你的幫助!

編輯

所以通過text_field_tag提交到哈希是一個簡單的是:

= text_field_tag 「註冊[] [FIRST_NAME]」

但問題與我hidden_​​field_tag進來和select_tag。

它添加壞值,例如:

"title"=>{"registrations"=>"Mr"} 

,基本上看來我需要找到一個更好的方法對這些值添加到哈希值。我會繼續嘗試找到一個解決方案,並會在這裏發佈它,除非有人打我。

回答

0

除非我讀錯了,你的前兩個select調用是相同的。你有沒有試過= select(:registrations, "title", Registration::TITLE)?如果您查看api.rubyonrails.org中的方法文檔,它將聲明第一個值是對象,第二個是屬性。這將是registrations => { :title => "Value" },在參數中。如果你只想要:title => "Value",那麼你需要select_tag方法。

+0

感謝您回覆我,我試過了您的建議,但仍然沒有運氣。問題似乎是我將我的值傳遞給哈希。請參閱修改主帖子。 – user1224344