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

我希望能够随时调用我的create方法,因为我有一个链接到交易资源。单击时,用户将被带到该交易视图,因此我不想替换 link_to 中的默认方法。有没有办法在 link_to 上调用第二种方法?或者也许使用 javascript 会是一个更好的解决方案?老实说,我对 RoR 比较陌生,而且我对 javascript 了解不多。关于如何最好地做到这一点的任何建议?提前致谢!

4

1 回答 1

1

听起来您想要以下内容:

  • 用户点击会导致交易的链接
  • 为该交易创建点击
  • 用户看到交易页面

我认为有两种体面的方法可以做到这一点。一种是将链接视为对 ClicksController 执行 POST 的按钮。另一种是在 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 回答