1

モデルの一部を設定するために別の Rails アプリケーションを参照する必要がある Rails アプリケーションがあり、それを行うために Active Resource を使用しています。

次のようなルートにヒットする必要がある場合:

/channels.xml

まったく問題ありません。自動マッピングは問題なく使用できます...

ただし、次のようなルートを処理できる必要もあります。

/channels/1/programs.xml

そして、これは私が立ち往生しているところです。

ドキュメントを見るだけで、これはカスタムの安らかなルートとしてカウントされる可能性があるように見えます。

Channel.first.get(:programs)

これは見た目が悪いだけでなく、機能しません (実際にデータを持っている Rails アプリが認識します)。

/channels//programs.xml

そこにはIDがありません。物事はさらに複雑になり、他のレールオブジェクトの「チャネル」モデルは、レールを考慮していない(したがって「id」列がない)レガシーデータベースから構築されているため、これはクールです。代わりに、「station_id」を使用します。

では、その乱雑な Channel.get メソッドを使用する必要がある場合、ID が正しく設定されていることを確認するにはどうすればよいでしょうか? ActiveResource アプリからこれを行うことはできますか、それともソース Rails アプリで何か変更する必要がありますか?

編集:誰かがそれを提案した場合に備えて、Channel.first.get(:programs, :id => 1) を試しましたが、次のようなルートが得られます:

/channels//programs.xml?id=1.

多分私は安らかなルートを放棄し、そこからIDを取得する必要があります....しかし、私は本当にしたくありません...

4

1 に答える 1

0

prefix_options と呼ばれるものを調べる

self.prefix_options[:channel_id] = <some channel_id>
于 2012-08-31T22:00:23.807 に答える