我在概念上遇到了麻烦,所以我希望我能找到一些关于如何完成这项任务的指导。
这个例子有点武断,但我希望它可以在这里展示我的目标。
3 个模型,已加入
class Manufacturer < ActiveRecord::Base
has_many :models
end
class Model < ActiveRecord::Base
belongs_to :manufacturer
has_many :editions
end
class Edition < ActiveRecord::Base
belongs_to :model
end
我想合并数据,以便搜索任何匹配项
<% @editions.each do |edition| %>
<% model = edition.model %>
<% manufacturer = model.manufacturer %>
<%= "#{manufacturer.name} #{model.name} #{edition.name}" %>
使这复杂化。为了跟踪,我想将此视为 3 个选择。
我预见到这一点的方式是使用模糊搜索进行匹配,并在分隔匹配项时使用 tokeninput 或类似方法进行显示。
在我的脑海中,我相信 eBay 可能会在他们的快速上市销售页面中做类似的事情。
想法:
- Model.find(:all, :joins => [:editions, :manufacturer] ) 会给我一切,但这不会扩展到第四个模型?
- 假设我需要在搜索表单或其他方式中使用这些捕获,我需要在文本字段和控制器中将它们分开。
- 我想的另一种方法是将其存储在一个表中,或者永久地或者作为查找表。此处的单个选择包含收集所有信息的参考
然后像
class Search < ActiveRecord::Base
has_one :manufacturer
has_one :model
has_one :edition
end