我想知道如何在视图中显示多个复选框的值?以下是我们正在谈论的一个例子。
<% 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视图中显示已保存的项目?
谢谢..
答案 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
具有name
和id
属性。
答案 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 %>