我想向我的用户显示几个选项,他可以选择一个或多个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
我的问题是关于控制器,如果选择多个,我不知道写什么来将数据发送到我的数据库
使用以下变体之一:
<% @values = ["Power", "Independance", "Tradition"] %>
<% @values.each do |value| %>
要么
<% values = ["Power", "Independance", "Tradition"] %>
<% values.each do |value| %>
如果阵列很短,这是一种简单而简单的方法。
["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>
有两个问题。
<%= 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