SORU
4 Aralık 2008, PERŞEMBE


Raylar Yardımcıları Yönlendirme (yani mymodel_path(model) Modellerinde kullanılabilir mi?

Raylar bir Model denilen Şey var. Şey url özniteliği vardıristeğe bağlı olarakinternette bir URL için bir yere ayarlayın. Görünümünde kodu aşağıdaki: Bu mantığa ihtiyacım var

<% if thing.url.blank? %>
<%= link_to('Text', thing_path(thing)) %>
<% else %>
<%= link_to('Text', thing.url) %>
<% end %>

Görünümünde bu koşullu mantık çok çirkin. Tabii ki, bu görünümü değiştirecek bir yardımcı işlev, icat edebilirim:

<%= thing_link('Text', thing) %>

Bu ayrıntı sorunu çözer, ama gerçekten bu modeli kendi içinde işlevsellik sahip tercih ederim. Bu durumda, görünüm kod şöyle olacaktır:

<%= link_to('Text', thing.link) %>

Bu, açıkçası, bu model üzerinde bağlantı bir yaklaşım gerektirir. İçermesi gerekir:

def link
  (self.url.blank?) ? thing_path(self) : self.url
end

Sorunun amacını, thing_path() Model kod içinde tanımsız bir yöntemdir. "Mümkün mü modele bazı yardımcı yöntemler, ama nasıl? çekmek için olduğunu varsayıyorum Ve sadece yönlendirme app denetleyicisi ve görünümü katmanları altında çalışır gerçek bir nedeni var mı? Model kodu URL (dış sistemleri, vb ile entegre) ile anlaşma gerekebilir durumlar çok düşünemiyorum.

CEVAP
28 Mart 2011, PAZARTESİ


Raylar 3 ve 4 kullanabilirsiniz:

Rails.application.routes.url_helpers

örneğin

Rails.application.routes.url_helpers.posts_path
Rails.application.routes.url_helpers.posts_url(:host => "example.com")

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Abe Olandres

    Abe Olandres

    16 EYLÜL 2006
  • AutoklubZAPRESIC

    AutoklubZAPR

    17 Mayıs 2011
  • thetrollska

    thetrollska

    2 EKİM 2009