如何使用数组创建复选框

问题描述 投票:-1回答:3

我想向我的用户显示几个选项,他可以选择一个或多个otions

我想在我的bdd上传支票

这是形式的想法

#views/values/new.html.erb*

<% @values =["Power", "Independance", "Tradition"] %>
<%= form_for @resultvalue do |f| %>
   <% @values.each do | value | %>
       <%= f.check_box :values, { multiple: true }, value, false %>
       <%= f.label value %>
   <% end %>
   <%= f.submit%>  
<% end %>
#controller/resultvalue_controller.rb

class ResultvaluesController < ApplicationController
[...]
 def resultvalue_params
     params.require(:resultvalue).permit(:values)
 end
end
#models/resultvalue.rb

class Resultvalue < ApplicationRecord
    serialize :values, Array 
end

我的问题是关于控制器,如果选择多个,我不知道写什么来将数据发送到我的数据库

ruby-on-rails ruby ruby-on-rails-5
3个回答
0
投票

使用以下变体之一:

<% @values = ["Power", "Independance", "Tradition"] %>
<% @values.each do |value| %>

要么

<% values = ["Power", "Independance", "Tradition"] %>
<% values.each do |value| %>

0
投票

如果阵列很短,这是一种简单而简单的方法。

["Power", "Independance", "Tradition"].each do |value|%>
  <div>
    <input type="checkbox" id="<%= value %>" name="<%= value %>">
    <label for="<%= value %>"><%= value %></label>
  </div>
<% end %>

<button class="btn btn-success" type="submit">
  Validate
</button>

否则,您可以在模型或任何其他模块下创建常量,例如:

class ModelA < ApplicationRecord
  CHOICES = ["Power", "Independance", "Tradition"].freeze 
end

然后在您的视图中,您使用常量,如:

ModelA::CHOICES.each do |value|%>
  <div>
    <input type="checkbox" id="<%= value %>" name="<%= value %>">
    <label for="<%= value %>"><%= value %></label>
  </div>
<% end %>

<button class="btn btn-success" type="submit">
  Validate
</button>

0
投票

有两个问题。

  1. 选择要使用的变量:@values或values。
  2. 除非要在视图中显示,否则在第一行中不需要=。
    <%= values =["Power", "Independance", "Tradition"] %>
    <% @values.each do |value|%>
      <div>
        <input type="checkbox" id="<%= value %>" name="<%= value %>">
        <label for="<%= value %>"><%= value %></label>
      </div>
     <% end %>
    <button class="btn btn-success" type="submit">
        Validate
    </button>

这将使您的视图工作。

在此之后,您需要具有表单,该表单将发布到相应的控制器操作。

之后,您可以从参数中将数据保存在控制器中,如:User.update(power:params [:Power])

我建议看看这个:https://guides.rubyonrails.org/active_record_basics.html

这是最好的起点之一:https://www.tutorialspoint.com/ruby-on-rails

© www.soinside.com 2019 - 2024. All rights reserved.