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

  • Evan Coury

    Evan Coury

    29 NİSAN 2007
  • jagadambarecords

    jagadambarec

    13 AĞUSTOS 2008
  • FF Radioo

    FF Radioo

    14 ŞUBAT 2007