2017-04-12 18 views
0

私は、activerecord配列の内容を変数に取得する必要があります。変数へのアクティブレコード配列。

<%= select_tag :operators, 
      options_for_select(@operator_list, 
      :selected => previous_operators(params[:id], action_name)), 
     ), 
      {:multiple => true, :size => 11} 
    %> 

previous_operators演算子カラム(列)

def previous_operators(id, action) 
    if action_name != "new" && action_name != "create"     # prevent error if a new bedsheet line. 
     @slitter_bedsheet = SlitterBedsheet.find(id)      # grab the current bedsheet line 
     @previous_operators = Array.new 
     @previous_operators = @slitter_bedsheet.operators    # get the keywords for the current bedsheet line 
    end 

    if @previous_operators.present?          
     operators = Array.new 
     operators = eval(@previous_operators)        
    else 
     # operators = ''             
    end 

    return operators 

    end 

の内容演算子の内容は要約すると

["", "[\"Chris Mendla\"]"] 

ようになります取得、私が取得しようとしています@slitter_bedsheet.operatorsの内容を選択された行:selected => previous_operators(params[:id], action_name))に追加します。

これまでのところ、選択されたオプションは、既に選択されている項目が表示されないという点で機能していません。

答えて

0

これをeval関数を使って解決しました。私はこれが危険な機能であることを認識していますが、この場合はファイアウォールの内側にあるアプリケーションであり、入力は選択ボックスから来ています。これを行う別の方法があるかもしれませんが、これは今のところうまくいくでしょう。

:selected => eval(previous_operators(params[:id], action_name))

関連する問題