0

Railsのボタンまたはリンクを使用してオブジェクトのフィールドを固定値に設定するにはどうすればよいですか? これはかなり基本的な手順のようですが、うまくいきませんでした。例は、製品モデルのparent_idをnilに設定することです(関連する以前の質問Update field through link_to in Rails)。テキストフィールドを空のままにすることで、フォームを介してこれを実現できました。

<%= form_for @product do |f| %>    
    <%= f.label :parent_id %>
    <%= f.text_field :parent_id %>
    <%= f.submit "Update", class: "btn" %>  
<% end %>

しかし、ボタンが押されたときにparent_idがnilに設定されるように、テキストフィールドなしで単にボタンを使用してこれを行うにはどうすればよいでしょうか? 非表示フィールドにparent_idを設定しようとしましたが、うまくいきません。

<%= form_for @product do |f| %>
   <%= f.hidden_field parent_id: nil %>
   <%= f.submit "Remove", class: "btn" %>
<% end %>

編集/更新アクションのコントローラーは次のようになります。

products_controller.rb

def edit
   @product = Product.find_by_id(params[:id])    
end

def update
  if @product.update_attributes(params[:product])
    flash[:success] = "Product updated"
    redirect_to @product
  else
    render 'edit'
  end
end

編集

フォームの代わりに link_to を使用してこれを行う方法については、Rails で link_to を介してフィールドを更新するを参照してください。

4

1 に答える 1

1

試す

<%= f.hidden_field :parent_id, value: nil %>

それ以外の

<%= f.hidden_field parent_id: nil %>

そして、モデルのリストにあるparent_idことを確認してください。attr_accessible

于 2012-12-03T20:25:18.770 に答える