0

我正在尝试将 meta_search 应用于一个表单,其中所有属性中的一个是按作者姓名进行的搜索。它在表 authors 中存储为两个属性“first_name”和“last_name”。我在 Author 模型中创建了以下虚拟属性:

  search_methods :name

  def name 
    self.first_name + " " + self.last_name
  end

我正在搜索的 Authors 和 Books 模型是这样关联的:

class Book < ActiveRecord::Base
  has_many :authors
..

class Author < ActiveRecord::Base
  belongs_to :book
..

现在,当我尝试将以下输入粘贴到视图中时,出现错误:

<%= f.text_field :authors_name_contains, :placeholder => "author.." %>

但是,如果我通过视图中的“或”运算符将条件应用于属性“first_name”和“last_name”,它就会起作用。

我究竟做错了什么?如何使 meta_search 使用方法“名称”?

4

1 回答 1

0

我不认为你能做到这一点。如果我理解 meta_search 正确,它会查看 ActiveRecord 生成的属性(或任何你的后端),所以它不会知道你的虚拟属性。

于 2011-07-07T13:40:14.863 回答