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

  • atKristaBradford

    atKristaBrad

    4 Aralık 2010
  • Maschine Tutorials

    Maschine Tut

    15 ŞUBAT 2011
  • The White House

    The White Ho

    21 Ocak 2006