2

我在我的 rails 应用程序中使用以下 gem:

http://github.com/fnando/post_commit

我正在尝试学习如何在我的应用程序中创建记录时向服务提供商(例如 Campfire)发送数据。

使用 Campfire 作为测试,我的 kase.rb 模型中有以下内容:

# Campfire
post_commit :campfire do
authorize :subdomain => "XXXXXXXXXX", :token => "XXXXXXXXXXXX", :room => 'XXXXXXX'
post "New Record", :type => :text
end

我的 kases_controller.rb 中的以下内容:

  # POST /kases
  # POST /kases.xml
  def create
    @company = Company.find(params[:kase][:company_id])
    @kase = @company.kases.create!(params[:kase])

    respond_to do |format|
        @kase.sendtocampfire if params[:send_to_campfire]

        #flash[:notice] = 'Record was successfully created.'
        flash[:notice] = fading_flash_message("Record was successfully created.", 5)

        format.html { redirect_to(@kase) }
        format.xml  { render :xml => @kase, :status => :created, :location => @kase }
    end
  end

在我看来,以下几点:

    <%= check_box_tag :send_to_campfire, 1, true %> Send Case to Campfire?

使用上面的代码时,我收到以下错误:

NoMethodError in KasesController#create

undefined method `post_commit' for #<Class:0x10528e3e8>

有人可以指出我正确的方向吗?

谢谢,

丹尼

4

1 回答 1

1

您可能需要在使用前明确require说明post_commit,或者更好的是,确保您的块中有environment.rb以下Rails::Initializer.run内容

config.gem 'post_commit'
于 2010-08-02T10:52:35.653 回答