0

如何使用 Rails 中的按钮或链接将对象的字段设置为固定值?看起来这应该是一个相当基本的程序,但我并没有成功。一个示例是将产品模型的 parent_id 设置为 nil(通过 Rails 中的 link_to 相关的早期问题 Update field)。我设法通过将文本字段留空来通过表单实现这一点:

<%= 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_idattr_accessible模型列表中。

于 2012-12-03T20:25:18.770 回答