如何在rails视图中显示复选框值

时间:2014-03-19 09:19:30

标签: ruby-on-rails ruby

我想知道如何在视图中显示多个复选框的值?以下是我们正在谈论的一个例子。

<% ExamPaper.all.each do |key, val| %>
    <%= f.check_box :exam_type, {:multiple => true}, key.exam_name, :class => 'exam_type'%>
    <%= key.exam_name %> 
<% end %>

在我看来,我尝试显示像这样保存在数据库中的项目;

<%= exam.exam_type %>

并且没有显示任何内容。如何在rails视图中显示已保存的项目?

谢谢..

2 个答案:

答案 0 :(得分:1)

ExamPaper.all.each将允许您循环ExamPaper而不是|key, val|对的实例。您是否想要循环检查论文或其他一些名为ExamType的班级来选择论文的类型并不完全清楚。

我的猜测是你想要更接近的东西:

<% ExamPaper.all.each do |paper| %>
  <%= f.check_box :exam_type, { :multiple => true, :class => 'exam_type' }, paper.id %>
  <%= paper.name %> 
<% end %>

假设您的exam_papers具有nameid属性。

答案 1 :(得分:0)

  

在考试视图中,我想显示多个exam_types   由用户选择

这实际上是关于ActiveRecord Associations

#app/models/user.rb
Class User < ActiveRecord::Base
    has_many :exam_types
    has_many :exams, through: :exam_types
end

#app/models/exam.rb
Class Exam < ActiveRecord::Base
    has_many :exam_types
    has_many :users, through: :exam_types
end

#app/models/exam_types.rb
Class ExamType < ActiveRecord::Base
    belongs_to :exam
    belongs_to :user
end

#app/controllers/exams_controller.rb
def show
   @exam = current_user.exams.find(params[:id])
end

#app/views/exams/show.html.erb
<% @exam.exam_types.each do |exam_type| %>
    <%= exam_type %>
<% end %>