は、私がこのようなネストされたリソースを、とレールのアプリを持っている:rails:ネストされたリソースを `link_to 'で自動的に動作させる方法はありますか?
resources :product do
resources :sales
end
Sale belongs_to Product
を、そしてSale
インスタンスが製品なしでは存在できません。
私が直接製品にリンクするlink_to
+ @product
を使用することができます。
<%= link_to @product.name, @product %>
<a href="/products/3">Strawberry Jam</a>
私は販売のために似た何かをしたい場合は、しかし、私は使用することはできませんを生成すること@sale
のみ。私は製品を関与させなければならない。これは動作しません:
<%= link_to @sale.date, @sale %>
私はこのようなものを使用する必要があります。sale_path
が定義されていないため
<%= link_to @sale.date, [@sale.product, @sale] %>
最初の場合は動作しません(唯一product_sale_path
です)。
私の質問:URLを生成するときに、link_to
(またはurl_for
)が自動的に「親」(この場合は製品)を追加するように、何かを販売モデルに追加できますか?
私はthe implementation of url_for
を見てみましたが、私はHelperMethodBuilder.url.handle_model_call
のMonkeypatchingでこれを行うことができたと思いますが、別の方法がある場合はそれをやりません。役立つかもしれない浅いネスティングを使用して
私は答えとしてこれを取るつもりですが、私が使用し終わったものではありません(私はすべてのモデルに 'モジュールは 'self'を返す' path'メソッドを持っていて、必要なときにそのメソッドをオーバーライドしました。 '@ sales'ではなく' link_to @ sales.path'を実行しなければなりませんでした。 – kikito