ruby-on-rails - Rails上的复选框

标签 ruby-on-rails checkbox webforms

在Ruby on Rails中制作与某个问题相关的复选框的正确方法是什么?目前,我有:

<div class="form_row">
    <label for="features[]">Features:</label>
    <br><%= check_box_tag 'features[]', 'scenarios' %> Scenarios
    <br><%= check_box_tag 'features[]', 'role_profiles' %> Role profiles
    <br><%= check_box_tag 'features[]', 'private_messages' %> Private messages
    <br><%= check_box_tag 'features[]', 'chatrooms' %> Chatrooms
    <br><%= check_box_tag 'features[]', 'forums' %> Forums
    <br><%= check_box_tag 'features[]', 'news' %> News
    <br><%= check_box_tag 'features[]', 'polls' %> Polls
</div>

我还希望能够自动检查以前选择的项目(如果此表格已重新加载)。如何将参数加载到这些参数的默认值中?

最佳答案

您正在查看以下内容:

<div class="form_row">
    <label for="features[]">Features:</label>
    <% [ 'scenarios', 'role_profiles', ... , 'polls' ].each do |feature| %>
      <br><%= check_box_tag 'features[]', feature,
              (params[:features] || {}).include?(feature) %>
      <%= feature.humanize %>
    <% end %>
</div>

尽管如果您已经拥有一个Feature模型,一个features表和一个has_many :features关系,则您可能希望这样做:
<div class="form_row">
    <label for="feature_ids[]">Features:</label>
    <% for feature in Feature.find(:all) do %>
      <br><%= check_box_tag 'feature_ids[]', feature.id,
              @model.feature_ids.include?(feature.id) %>
      <%= feature.name.humanize %>
    <% end %>
</div>

关于ruby-on-rails - Rails上的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/621340/

相关文章:

c# - 提交,显示结果,延迟 3 秒并重定向

javascript - 在下拉列表更改时调用 Javascript 函数

ruby-on-rails - ActiveRecord 查找包括特定外来词的所有记录(不区分大小写)

ruby-on-rails - 如何使用 money-rails 显示带有符号的价格

c# - 多个删除选中的列表框项目

javascript - 检查所选复选框的值是否在数据属性中

javascript - Heroku 和 Rails 4 : some javascript not working

ruby-on-rails - 如何重现/清理杂乱的 POST 参数以避免 delayed_job 的 YAML 序列化问题?

java - 不要为错误的复选框选择增加分数

asp.net - Ninject 与 ASP.Net 网络表单和 MVC