rmp*_*rmp 6 ruby-on-rails ruby-on-rails-3
我正在尝试学习RoR,构建我的第一个应用程序,一个基本的库存应用程序.我试过四处搜索但找不到正确的语法,所以我想我会问.
这是我的设置:
模型
class Item < ActiveRecord::Base
belongs_to :supplier
class Supplier < ActiveRecord::Base
has_many :items
Run Code Online (Sandbox Code Playgroud)
物品控制器
@items = Item.find_all_by_supplier_id '1'
Run Code Online (Sandbox Code Playgroud)
这将返回我想要的数据,但我希望将供应商名称输入到控制器中,这样如果ID不匹配,它仍然可以正常工作.
希望足够的信息,谢谢!
Gaz*_*ler 18
你可以反转你的方法位并尝试:
@items = Supplier.find_by_name('THE NAME').items
Run Code Online (Sandbox Code Playgroud)
Rails创建用于搜索的动态find_by_*和find_all_by_*方法.而不是通过supplier_id检索项目,我建议您让rails使用您在上面的代码段中设置的关联为您执行此操作.在内部,这仍然使用supplier_id,但rails正在处理该过程而不是您.
这也是可能的,所以如果你有一个项目并想要供应商,你可以这样做:
Item.find(1).supplier
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19848 次 |
| 最近记录: |