Rails 上的复选框
Posted
技术标签:
【中文标题】Rails 上的复选框【英文标题】:Checkboxes on Rails 【发布时间】:2010-10-11 21:40:42 【问题描述】:在 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>
我还希望能够自动检查以前选择的项目(如果重新加载此表单)。我如何将参数加载到这些的默认值中?
【问题讨论】:
【参考方案1】:您正在查看以下内容:
<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>
【讨论】:
#<:base:0x228bf5c> 的未定义局部变量或方法“特性” 那么,什么模型有特征关联,它存储到什么变量中? @文章? @产品? :) 实际上,为什么不发布您的视图和操作(来自控制器)和相关模型的整个代码? 这不直接映射到任何模型。根据我原来的帖子,我有一个问题,需要几个选项。然后,如果页面有任何参数,我希望能够自动检查选项。 很好。请参阅更新后的 first 示例以了解您的具体情况。以上是关于Rails 上的复选框的主要内容,如果未能解决你的问题,请参考以下文章