2

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) %>

しかし、これはかなり醜いです。現在、実際には存在しない余分なルートがアプリ内に浮かんでいます。もっと良い方法があるはずです。モデル自体に、それ自体の URL を取得する手がかりはありますか? 誰にもヒントはありますか?ありがとう。

4

1 に答える 1

0

ActiveResource は、このように使用するためのものではありませんでした。ActiveRecord に非常に近いように実装されています。ルートは定義ごとにローカルです。別のサイトを参照している場合は、このアプリケーションにリンクしていないため、通常のルートは (あまり) 役に立ちません。

デフォルトのヘルパーは、命名規則のみで機能します。URL ヘルパーがオブジェクトに対して行う唯一のことはto_param、個々のリソースの識別子を取得するための呼び出しです。

あなたを助けることができる宝石があるかどうかはわかりませんが、あなた自身のヘルパーを作らなければならないのではないかと心配しています.

于 2011-01-07T21:32:58.127 に答える