2017-04-14 20 views
0

有沒有辦法通過一個變量傳遞給一個實例顯示部分?基本上我創建了一個遵循CRUD的服務,並希望能夠迭代實例化變量。如何在對象上調用show時使用局部變量,即@ object.this _#{variable}?

在父視圖:

<%= form_for(@report) do |f| %> 
    <%= render :partial => "reports/forms/partial_form", :locals => {:g => f, :var => "01"} %> 
<% end %> 

在局部視圖:我可以通過傳遞部分,像這樣創建它

<label><%= "Enter Data for Variable #{lane_number}" %></label> 
<%= g.text_field :"Variable_#{var}" %> 

這是有用的在部分中的變量具有相似的 - 足夠的命名慣例使用相同的var來遍歷幾個項目。這工作得很好。

我想在查看輸入數據時做類似的事情,但我無法弄清楚如何將var傳遞給實例變量。

在父視圖:

<%= render :partial => "reports/shows/partial_show", :locals => {:var => "01"} %> 

在局部視圖:

<%= @report.Variable_#{var} %> 

我知道#{var}只是用於字符串插值(這就是爲什麼它在原來的創建工作)但是有沒有辦法讓我通過將變量傳遞給partial?

+1

歡迎堆棧溢出。我們不關心你是新手還是缺乏語言方面的專業知識。我們關心你是否完成了你的研究並提出了一個詳細而簡潔的問題。閱讀「[問]」和鏈接頁面,以及「[如何問問題的智能方式](http://catb.org/esr/faqs/smart-questions.html)」,尤其是http:// catb .org/esr/faqs/smart-questions.html#idm46227255999488 –

回答

1

您可以使用元編程來獲取變量的值,因爲你只需要調用一個方法:

<%= @report.send("variable_#{var}") %> 
+0

工作就像一個魅力!謝謝 - 我覺得這簡直太簡單了,我只是不明白。 –

相關問題