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

  • Kanaal van Dj0fifty

    Kanaal van D

    28 EKİM 2011
  • humanHardDrive

    humanHardDri

    16 Mart 2011
  • TechXCentral

    TechXCentral

    12 Temmuz 2011