如何将两个链式方法作为符号发送?

时间:2015-06-19 11:48:34

标签: ruby-on-rails friendly-id decent-exposure

为了使用friendly_id正确搜索我的帖子,我使用此查询:

Post.friendly.find(params[:id])

但我需要将此方法包装起来并将其发送到我的演示者类gem decent_exposure。这给了我一个奇特的地方,可以包含一个可以获取我的对象的method

默认情况下,此方法为:find。正如他们的代码中所写:

def finder
  options[:finder] || :find
end

scope.send(finder, id) # scope here would mean Post

如何通过选项发送,这两个方法查询作为符号?

2 个答案:

答案 0 :(得分:3)

如果在Post上定义类方法,请快速查看文档,然后就可以使用它了。

class Post
  def self.find_with_friendly(id)
    friendly.find(id)
  end
end

然后你可以做

expose(:post, finder: :find_with_friendly)

非常确定这应该有用。

答案 1 :(得分:0)

这样的东西

scope.send(:finder).try(:id)??