2012-11-25 34 views
0

的電流值在edit.html.erb文件我的代碼Rails的訪問象徵

<%= form_for @submission do |f| %> 
    <%= f.fields_for :submitted_answers do |answer| %> 
    <%= answer.label :question_id %> 
    <%= answer.number_field :question_id %> 
    <% end %> 
<% end %> 

這說明我有question_id的電流值,可以讓我改變了許多領域。現在我只想顯示這個值,不讓任何人改變它。我如何得到這個價值?

如果我說

<% @question = :question_id %> 

問題只是等於字符串:「question_id」

回答

3

你似乎誤以爲這裏發生了什麼上。符號是一個類似於字符串的對象,但是在內存中以不同的語法存儲。當您將一個符號傳遞給Ruby中的許多方法時,它們將用作方法的引用。在這種情況下,:question_id符號作爲參數傳遞給number_field輔助方法,隨後在窗體對象(即可能是ActiveRecord模型的對象)上調用該符號。

長話短說,answer,一個表單構建器,從您傳遞到您的form_for調用的模型中獲取問題ID。要顯示值,您可以通過直接調用方法,即做同樣的事情:

<%= @submission.question_id %> 

但是,因爲你遍歷這些使用fields_for,可以改爲到表單生成器被引用對象通過調用object

<%= answer.object.question_id %> 
+0

是我的錯,我真的不添加完整的上下文,基本上回答是叫submitted_answer嵌套屬性的一部分。我通過提交,但每個提交都有多個submitted_answers。 – Swiss

+0

@Swiss對......我說過了。 – coreyward

+0

每個submitted_answer有不同的question_id,question_id不是提交的屬性。當我嘗試完成第二部分時,我還爲#獲取了未定義的方法'form_object'。 – Swiss