Sci*_*y77 1 ruby activerecord ruby-on-rails
我有一个Track表和一个Section表.轨道有很多部分.Section通过Section:track_id连接到各自的任务,track_id对应于Track的:id属性.
<% @track = Track.find(params[:id]) %>
<% @sections = Section.find_by_track_id(@track.id) %>
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,我试图找到共享相同的多个部分:track_id属性,但find_by_track_id()仅返回第一个.获得所有这些的最佳方法是什么?
谢谢!
如果您的轨道和部分以这种方式相关,那么关联它们的最佳方式是使用Rails自动关联的方法.
在这种情况下,我希望在您的模型文件中,您有以下内容:
class Track < ActiveRecord::Base
has_many :sections
end
class Section < ActiveRecord::Base
belongs_to :track
end
Run Code Online (Sandbox Code Playgroud)
然后你可以得到像这样的轨道的部分:
@track = Track.find(params[:id])
@sections = @track.sections
Run Code Online (Sandbox Code Playgroud)
您正在寻找where
,它会找到满足一组特定条件的所有记录。
@sections = Section.where(track_id: @track.id)
Run Code Online (Sandbox Code Playgroud)
这无关你的问题,但你应该设置@sections
并@track
在您的控制器。似乎您是Rails的新手,因此强烈建议您阅读Rails指南。他们将极大地帮助您的旅程。
编辑:我正在解决“在Rails中按属性查找多个数据库对象?”的一般问题,这是在一般情况下如何查找多个数据库对象。@ TarynEast的方法是去找到所有的路sections
了track
,或者更一般地,所有属于所需对象的对象。对于您在上面要求的特定情况,请使用@TarynEast的解决方案。
归档时间: |
|
查看次数: |
1954 次 |
最近记录: |