私はいくつかのコードをリファクタリングしています。私はテーブルの列を作る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)は動作するはずです。 –