0

私は自分のアプリでクリック単価制を実行することに取り組んでおり、SO でフレームワークをセットアップする際に助けを得ることができました。ここに私がこれまでに持っているものがあります:

class Click < ActiveRecord::Base
    belongs_to :deal
    belongs_to :vendor
end

class ClicksController < ApplicationController
    def create
        @deal = Deal.find(params[:deal_id])
        @deal.clicks.create
    end
end

class Deal < ActiveRecord::Base
    belongs_to  :vendor
    has_many    :clicks
end

createlink_to 取引リソースがあるときはいつでもメソッドを呼び出せるようにしたいと考えています。クリックすると、ユーザーはその取引ビューに移動するため、link_to のデフォルトのメソッドを置き換えたくありません。link_to で 2 番目のメソッドを呼び出す方法はありますか? それとも、javascript を使用する方がより良い解決策でしょうか? 正直なところ、私は RoR に比較的慣れていないため、javascript についてはまったく知りません。これを達成するための最善の方法について何か提案はありますか? 前もって感謝します!

4

1 に答える 1

1

次のものが必要なようです。

  • ユーザーが取引につながるリンクをクリックする
  • その取引に対してクリックが作成されます
  • ユーザーが取引のページを見る

これを行うには2つの適切な方法があると思います。1 つは、リンクを ClicksController への POST を実行するボタンとして扱うことです。もう 1 つは、DealsController に after_filter を設定することです。

前者は、ClicksController を指すようにリンクを変更し、POST (デフォルトでは #create アクションに送信されます) を使用し、#create アクションの最後にリダイレクトすることを意味します。

redirect_to @deal

詳細については、 link_to ドキュメントを参照してください。

これはより RESTful に感じられますが、link_to は少し見た目が悪いかもしれません。

後者のオプションは、次のようなものを追加することを意味します

after_filter -> { @deal.clicks.create }

DealsController#show メソッド用。

于 2013-11-12T02:15:53.407 に答える