我正在重構一些代碼。我試圖在我的視圖中使用數組作爲for循環的一部分,該循環在表中創建列。Ruby on Rails:將數組值存儲在變量中並用作字符串
我已經在我的控制器中定義的數組:
subjects_controller.rb
def index
...
@CRFS_TO_VIEW = [Baseline, TreatmentCompletion]
@CRF_PATH = {Baseline => 'baseline_path', TreatmentCompletion => tc_path}
end
所以我的目標;當函數迭代@CRFS_TO_VIEW時,從@CRF_PATH中選擇正確的路徑並將其附加到link_to函數。
indext.html.erb
<% @CRFS_TO_VIEW.each do |crf| %>
<% path = @CRF_PATH[crf] %>
<%= link_to "edit", path(crf.where(subject_id: sub.subject_id).first %>
<% end %>
我也試過:
<%= link_to "edit", @CRF_PATH[crf](crf.where(subject_id: sub.subject_id).first %>
,沒有工作。我覺得我一定會越來越接近,任何幫助或洞察力將不勝感激。
感謝。
在'@ CRFS_TO_VIEW'數組中,這些元素不應該是字符串嗎?像'@CRFS_TO_VIEW = ['Baseline','TreatementCompletion']'。與@ CRF_PATH相同。 – treiff
可能是這樣,我會試一試。但在此之前,將@CRF_PATH [crf]保存到路徑不起作用。路徑未被識別。也許我不能在視圖中聲明一個變量? –
因此@CRFS_TO_VIEW不起作用,因爲這些項目不是字符串。它們是控制器的參考。這樣Baseline.create(id)應該可以工作。 –