検索フォームのパラメータ受け取り用に
class SearchParam include ActiveModel::Model @@attr = :param1, :param2, :param3, :param4 attr_accessor *@@attr def attr @@attr end end
というモデルを作って form_for @search_param ... の検索フォームからきたデータをセットしたいのですが
controller
def index @search_param = SearchParam.new search_params_local.each{|key, value| puts "[#{key}, #{value}]" @search_param[key] = value } end def search_params return nil if params[:search_param].nil? params[:search_param].permit(:param1, :param2, :param3, :param4) end
とかくと
[param1, ]
のputs出力の後
NoMethodError (undefined method `[]=' for #SearchParam:0x0055dd59f3b268):
というエラーが出ます
@search_param.param1 = ...
という形式ではかけるのですが
attr_accessor に param1 ははいっていても ActiveRecord::Base を継承したモデルのように
@search_param[:param1] = ...
という形式はかけないのでしょうか
set_attributes や attributes = もだめでした
フォームから受け取ったパラメータを1つ1つかかずにまとめてセットすることはできないでしょうか
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/10/24 09:55