2017-07-20 4 views
0

私は直接書くことができないモデルフィールドにいくつかの配列を追加する必要があります。Model.send(...)= [1,2,3]

は例えば、私はこのように、|type|のparamコードとブロックに必要:

Employee.find_by(resposible: true).send("#{type}_ids") = [1,2,3] 

しかし、これは動作しません。

答えて

0

使用している構文に問題があります。好み:

send(symbol [, args...]) 

ので、以下のようにコードを変更することはあなたが

がNOTEコンマの後にパラメータを渡す必要があり

Employee.find_by(resposible: true).send("#{type}_ids=", [1,2,3]) 

動作するはずです:これはsendの正しい構文でありますpublic_sendsendとすると、public_sendsend

とは異なりパブリックメソッドのみを呼び出します
+0

ありがとう!この作品! –

0

via sendというメソッドにパラメータを含める構文は少し異なります。試してみてください:

Employee.find_by(resposible: true).send("#{type}_ids=", [1,2,3]) 
関連する問題