脚手架轨道上的简单查询

时间:2014-03-08 15:00:50

标签: ruby-on-rails ruby forms actionmailer mailer

所以我的简单问题是,如果特定列在数据库中使用基于以下控制器的表单更新,我想调用邮件程序。但是我不知道如何使用列名...我在if @style.category之后做if @style.save但是没有工作。

控制器

  def new
    @style = Style.new
    @users = User.where('username <> ?', current_user.username)

    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @style }
    end
  end


    def create
        @style = Style.new(params[:style])
        @style.sender = current_user

        respond_to do |format|
          if @style.save,
            ### want to call mailer here , based on if column "category" is updated or not 
            if @style.receiver
            format.html { redirect_to user_path(@style.receiver.username), notice: "successs!"}
            else
              format.html { redirect_to root_path, notice: 'Success!' }
            end

1 个答案:

答案 0 :(得分:0)

在模型中添加一个after_save回调可以帮助

class Style < ActiveRecord::Base
  after_save :send_email

  def send_email
    if changed_attributes.has_key?('category')
      call the mailer here
    end
  end
end