使用 Rails 3.2。我有以下邮件操作:
# shop.rb
class Shop < ActiveRecord::Base
def deliver_update_notification!(user)
version = self.versions(user).last
EditorMailer.updated_spot(self, version).deliver
end
end
# shops_controller.rb
class ShopsController < ApplicationController
def update
@shop = Shop.find(params[:id])
if @shop.update_attributes(params[:shop])
@shop.deliver_update_notification!(current_user)
redirect_to shop_path(@shop)
else
render 'edit'
end
end
end
不知何故,当我将current_user
对象传递给方法deliver_update_notification!
时,它会抛出一个错误,说找不到方法。如果将方法更改为不接受任何对象,则该方法有效。为什么会这样?
另外,我不记得为什么我在方法中有感叹号。从某处看到的。感叹号的目的是什么?
谢谢。