Jak mogę wysłać dwóch łańcuchach metody jako symbol?

głosy
0

W celu prawidłowego Przeszukaj moje posty za pomocą friendly_id, używam tej kwerendy:

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

Ale muszę owinąć tej metody i przesłać go do mojego prezentera klasy gem decent_exposure. Co daje mi to wyszukane miejsce do włączenia method, które sprowadzić mojego obiektu.

Domyślnie, ta metoda jest :find. Jak napisano w kodzie:

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

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

Jak mogę wysłać za pośrednictwem opcji, to zapytanie dwie metody jako symbol?

Utwórz 19/06/2015 o 10:48
użytkownik
W innych językach...                            


2 odpowiedzi

głosy
0

Coś jak

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

Odpowiedział 19/06/2015 o 10:53
źródło użytkownik

głosy
3

Patrząc na ich dokumentacji szybko, jeśli definiować metody klasy na post powinien być w stanie użyć.

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

Następnie można zrobić

expose(:post, finder: :find_with_friendly)

Całkiem pewien, że to powinno działać.

Odpowiedział 19/06/2015 o 10:59
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more