将确认复选框添加到 Rails 中未绑定到某个属性的表单



菜鸟问题! :)

我有一个表格,除了打电话some_action之外基本上没有其他意义。我为此使用表单的原因是因为我们在我们的大型网站中对此有特定的样式。

<%= styled_form_for(@user, :url => some_action_user_path @user)) do |f| %>
    <%= f.save_button %>
<% end %>

我想,既然它是一个表单,我应该可以在那里放一个复选框。除了确认用户确实要执行此操作之外,它应该没有其他目标。例如,"是的,我想对用户模型执行some_action"。

我将如何制作一个不会真正更改任何属性或影响任何内容的复选框 - 除了应该检查要提交的表单之外?

这可能非常简单,但根据文档和各种错误消息,我应该提供这样的属性参数(我不想要......

form_for用于

处理模型的属性,这就是您正在阅读的所有文档告诉您的。因此,如果您的模型有一个布尔列,您可以轻松地向其附加一个复选框。

如果您想要不遵循此目的的表单(或特定标记(,则可以使用这些方法的_tag版本。例如,form_tag,或者,在您的特定情况下,check_box_tag。

例:

<%= styled_form_for(@user, :url => some_action_user_path @user)) do |f| %>
  <%= check_box_tag "do_some_method" %>
  <%= f.save_button %>
<% end %>

注意:只有选中:do_some_method参数条目,您才会获得该条目。如果你想无论如何都得到一个参数,你必须在它之前添加一个hidden_field_tag

<%= hidden_field_tag "do_some_method", "no_dont_do_it" %>
<%= check_box_tag "do_some_method", "yes_do_it" %>

现在,如果选中该复选框,您将params[:do_some_method]设置为"yes_do_it";如果未选中,则不会获得任何输入,而是params[:do_some_method]设置为"no_dont_do_it"

最新更新