Ruby on rails 从迭代rails 3中获取特定项
我正试图找到一种方法来提取分配给某门课程的所有笔记,但只有在必要的时候。我有一个展示页面,上面展示了测验的所有笔记 course show.html.erbRuby on rails 从迭代rails 3中获取特定项,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我正试图找到一种方法来提取分配给某门课程的所有笔记,但只有在必要的时候。我有一个展示页面,上面展示了测验的所有笔记 course show.html.erb <%= @course.name %> <% @quiz.notes.each do |note| %> <%= link_to note.title, quiz_note_path(@quiz, note) %><br/> <% end %> 上面的代码可以找到
<%= @course.name %>
<% @quiz.notes.each do |note| %>
<%= link_to note.title, quiz_note_path(@quiz, note) %><br/>
<% end %>
上面的代码可以找到,除了它提取所有的笔记,而不是分配给该课程的笔记。如果note和course name相等,我如何告诉rails只拉便条
更新强>
在new.html.erb注释中,我正在使用集合\u select
<%= f.collection_select(:course_ids, @quiz.courses, :id, :note_name, options = {:prompt => "Choose"}) %>
“Choose”})%%>
试试这样的方法
<%= @course.name %>
<% @quiz.notes.select { |n| n.title == @course.name }.each do |note| %>
<%= link_to note.title, quiz_note_path(@quiz, note) %><br/>
<% end %>
可枚举。选择
将计算块并仅返回其为真的元素。似乎在课程
和测验
之间没有关系
一门课程
有许多测验
,测验
有许多笔记
。您应该这样设置您的关系,这样它就不会引出与当前课程不相关的不必要的注释
这里的诀窍是使用has\u many:through
提取课程内的所有笔记
class Course < ActiveRecord::Base
has_many :quizzes
has_many :notes, :through => quizzes
end
class Quiz < ActiveRecord::Base
has_many :notes
end
class Note < ActiveRecord::Base
belongs_to :quiz
end
<%= @course.name %>
<% @course.notes.each do |note| %>
<%= link_to note.title, quiz_note_path(note.quiz, note) %><br/>
<% end %>
课程测验
结束
课堂测验
您的数据模型是什么样子的?从你们的例子来看,这个测验似乎有很多笔记。你正在反复阅读所有的测验笔记。如果你的课程也有很多笔记,你应该在你的模型中定义它,这样你就可以使用@course.notes.each@c0deNinja,即使在使用collection\u select时,它也会起作用吗?它不会给我一个错误,但没有显示任何内容。对于笔记,我使用collection_select字段获取课程名称。为什么它不显示课程下的笔记?