Dav*_*A-R 2 activerecord ruby-on-rails
我对 Rails 还很陌生,所以如果这是一个愚蠢的问题,我深表歉意。我试过在网上寻找答案,但我对术语并不完全确定,所以我发现很难得到答案。
基本上,我有两个模型“组”和“类别”。Groups has_one Categories,和 Categories own_to Groups。我想要做的是从组列表中获取类别列表。
像这样的东西:
@groups = Group.find(:all)
@categories = @groups。<< 插入魔术代码以获取类别 >>
所以我可以在视图中做这样的事情:
<% @categories.each do |cat| %>
<%= cat.title %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
问题是我无法为我这些小鸡找出神奇的代码位,甚至无法准确地找出我需要寻找的东西来学习如何去做。
我尝试过的事情:
@categories = @groups.categories
@categories = @groups.category
@categories = @groups.category.find(:all, :select => 'title')
@categories = Category.find(:all, @groups.categories)
@categories = Category.find(:all, @groups.categories.find(:all, :select => 'title'))
Run Code Online (Sandbox Code Playgroud)
以及各种其他的上述内容。
我真的很感激一个解决方案和/或一个指向我可以自己学习的地方的指针!
非常感谢
我明白!当你不知道它叫什么时,很难知道要搜索什么。这很容易用纯 Ruby 完成,使用map
Array 类的实例方法:
categories = groups.map{|g| g.category}
Run Code Online (Sandbox Code Playgroud)
对此的简写方法是:
categories = groups.map(&:category)
Run Code Online (Sandbox Code Playgroud)
的map
阵列方法调用每个元素的给定的块,并滚动所有返回值到一个数组。
这应该快得多
@categories = Category.where(id: @groups.pluck(:category_id))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3843 次 |
最近记录: |