Есть хороший способ использовать url_for с ActiveResource? - PullRequest
1 голос
/ 07 января 2011

Я использую ActiveResource в своем приложении rails для общения с другим приложением rails (оба версии 2.3.5). Я хотел бы сослаться на страницу для определенного объекта ресурса, но, похоже, не существует хорошего способа сделать это. Уродливый способ, который я понял, это добавить строку в мой файл rout.rb, который имитирует мой ресурс, например:

# environment.rb, or in the config/environments/*.rb files
PERSON_URL = "people.example.com"

# person.rb
class Person < ActiveResource::Base
  self.site = "http://#{PERSON_URL}"
end

# routes.rb
map.resources :people # or persons, or whatever

# my_view.html.erb
<%= link_to person.name, person_url(person, :host => PERSON_URL) %>

Но это довольно уродливо. Теперь в моем приложении есть дополнительный маршрут, который на самом деле не существует. Там должен быть лучший путь. Есть ли у самой модели какие-либо подсказки для получения URL для себя? У кого-нибудь есть советы? Спасибо.

1 Ответ

0 голосов
/ 08 января 2011

ActiveResource не должен был использоваться таким образом. Это реализовано, чтобы быть очень близко к ActiveRecord. Маршруты по определению локальные. Если вы ссылаетесь на другой сайт, вы больше не ссылаетесь на это приложение, поэтому обычные маршруты не помогут вам (сильно).

Помощники по умолчанию работают только на соглашениях об именах. Единственное, что помощники URL будут делать с объектами, это вызвать to_param, чтобы получить идентификатор для отдельных ресурсов.

Я не знаю, есть ли драгоценный камень, который может вам помочь, но я боюсь, что вы должны сделать своих собственных помощников.

...