0

is_publicリンクをクリックして、rails4の属性を強力なパラメーターで更新できるようにしたいと考えています。これが私の現在のコードです:

<small><%= link_to "make private", property_url(@property,is_public: !@property.is_public), method: "patch" %></small>

.permit私がこれで抱えている問題は、コントローラーで、強力なパラメーターがメソッドの Nil クラスのメソッドを作成しないため、No Method を受け取ることparams[property][:is_public]です。params[:is_public]プロパティの ID を作成するだけです。

オブジェクトのパラメーターをネストするレールの方法はありますか、それともハードコーディングする必要がありますか (自分の名前をハードコーディングするのは好きではありません)。

4

1 に答える 1

3

リンクの背後にあるアクションでデータを更新できるようにする場合は、次のようにします。

@property.update(property_params)

強力なパラメーターは次のようなものです。

def property_params
  params.require(:property).permit(:is_public)
end

次に、リンクを次のように定義できると思います。

<small><%= link_to "make private", property_url(@property, property: { is_public: !@property.is_public }), method: "patch" %></small>

そして、それは典型的な方法でパラメータを整列させます. それはあなたが求めているものですか?

于 2013-11-12T20:44:11.137 に答える