5

Rails4 アプリで初めて Hstore をいじっています。フォームで javascript を使用して、hstore 列 (:schema) の動的フォーム フィールドを構築しています。

Rails 4 では、モデルに setter/getter メソッドを追加する必要はありませんよね?

私のフォームでは、動的入力フィールドを作成し、ユーザーがキーと値のペアを設定できるようにしています。Hstore Heroku デモアプリによく似ています

したがって、基本的に私のフォームには次のような入力があります

input name="app[schema][dynamic_key1]" value="whatever value"
input name="app[schema][dynamic_key2]" value="whatever value2"

私のアプリコントローラーで:

def app_params
  params.require(:app).permit(:name, :title, :schema )
end

ただし、新しいアプリ レコードを作成すると、スキーマの hstore 値が保存されません。:schema => []の強力なパラメーターを作成することについていくつか見ましたが、それでも機能しません。

これらの値がどうなるかわからないので、多くの例で見たように、これらに対して store_accessors をセットアップすることはできません。

4

3 に答える 3

11

ここでこれを見つけました:http://guides.rubyonrails.org/action_controller_overview.html#more-examples

そして私のコントローラーで私が使用した:

def app_params
  params.require(:app).permit(:name, :title).tap do |whitelisted|
    whitelisted[:schema] = params[:app][:schema]
  end
end
于 2013-09-27T20:18:39.797 に答える