Ruby on rails 如何从关联中的链接访问数据?
我有: 我想从该Aula和Aula内某个特定学生之间的连接中显示Ruby on rails 如何从关联中的链接访问数据?,ruby-on-rails,routes,has-many-through,Ruby On Rails,Routes,Has Many Through,我有: 我想从该Aula和Aula内某个特定学生之间的连接中显示成绩。name。这不起作用,但你会明白我想要什么: Aulas has_many :grades has_many :students, :through => :grades Students has_many :grades has_many :aulas, :through => :grades Grades belongs_to :aula belongs_to :student - 好的,我在奥拉(i
成绩。name
。这不起作用,但你会明白我想要什么:
Aulas
has_many :grades
has_many :students, :through => :grades
Students
has_many :grades
has_many :aulas, :through => :grades
Grades
belongs_to :aula
belongs_to :student
-
好的,我在奥拉(id:68)里面,如果我做学生。成绩,我从所有奥拉那里得到分数
<% aula.students.each do |student| %>
<%= link_to student.name, student %>-<%= student.grade.name %>
<% end %>
如何仅获取与此Aula(Aula_id:68)相关的年级名称 一个学生
有很多:成绩(带“s”),所以当你有学生记录时,你不能在上面调用成绩(不带“s”),因为Rails不知道你要找的是哪个成绩
您需要做的是调用student.grades
(带“s”),这将通知Rails您正在查看该学生的所有年级
但它还没有结束,因为使用student.grades
您将获得该学生的所有成绩。您有两种解决方案:
要么要全部显示它们,必须循环遍历它们,如下所示:
[#<Grade id: 51, name: AA1, student_id: 22, aula_id: 68 >,#<Grade id: 52, name: AA2, student_id: 22, aula_id: 69 >,#<Grade id: 53, name: AA3, student_id: 22, aula_id: 70 >]
<% student.grades.each do |grade| %>
<%= grade.name %>
<br />
<% end %>
如果您正在集合中查找一个特定的等级,并且只希望显示该等级(假设您正在查找id=5的等级),则可以执行以下操作:
[#<Grade id: 51, name: AA1, student_id: 22, aula_id: 68 >,#<Grade id: 52, name: AA2, student_id: 22, aula_id: 69 >,#<Grade id: 53, name: AA3, student_id: 22, aula_id: 70 >]
<% student.grades.each do |grade| %>
<%= grade.name %>
<br />
<% end %>
此外,我建议您使用特定的词汇表,这是很好的,因此当您在谷歌搜索解决方案时,它将帮助您找到正确的信息。这里您讨论的是模型之间的连接,用Rails的话我们称之为关联:)好的。我想,我不需要让学生知道年级的名字,我可以让学生知道年级,所以我做到了
<%= student.grades.find(5).name %>
-
现在一切都很好。谢谢你的帮助,也许这就是我很难找到答案的原因。但这并不能解决我所有的问题。问题是,每个等级都是一个链接,如何从创建链接的特定等级获取ID?奥拉是一个三年级的学生。如果我得到所有的分数,我会有很多的分数。我只想要一个链接。这可能吗?艾伦,你完全改变了问题,我回答了你之前的问题,我想这是可行的。如果您需要其他帮助(此处为链接和ID),请创建一个新请求。谢谢你也验证了我的答案