如何使用 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 更新字段。