我在我的rails应用程序中使用ActiveResource与另一个rails应用程序(两者都是版本2.3.5)进行通信。我想链接到特定资源对象的页面,但似乎没有任何好的方法来做到这一点。我弄清楚的丑陋方式是在我的routes.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) %>
但这非常难看。现在我在我的应用程序中有一条额外的路径,实际上并不存在。一定有更好的方法。模型本身是否有任何获取网址的线索?有人有任何提示吗?感谢。
答案 0 :(得分:0)
ActiveResource并不打算以这种方式使用。它被实现为非常接近ActiveRecord。路由按本地定义。如果您正在引用其他站点,则不再链接到此应用程序,因此正常路由对您没有帮助(很多)。
默认帮助程序仅适用于命名约定。 url helper将对对象执行的唯一操作是调用to_param
以获取各个资源的标识符。
我不知道是否有宝石可以帮助你,但我担心你必须自己做帮手。