【问题标题】:Customizing or Overriding ActiveAdmin Edit/Update action controller自定义或覆盖 ActiveAdmin 编辑/更新操作控制器
【发布时间】:2015-05-30 14:31:44
【问题描述】:

我想在修改后通过 ActiveAdmin 编辑“gca_user”模型,当我点击“更新”按钮时,它应该向该用户发送电子邮件。

使用版本: 红宝石“2.1.5” 导轨 4.2.1

我该怎么做?

这是代码: app/admin/gca_user.rb

ActiveAdmin.register GcaUser do
    permit_params :user_name, :first_name, :middle_name, :last_name, :cell_number, :social_media_provider, :social_media_id, :created_by, :created_date, :updataed_by, :updated_date, :realm, :username, :password, :credentials, :challenges, :email, :emailverified, :verificationtoken, :status, :created, :lastupdated, :provider, :nick_name

    index do
        selectable_column
        id_column
        column :user_name
        column :first_name
        column :middle_name
        column :last_name
        column :cell_number
        column :social_media_provider
        column :social_media_id
        column :created_by
        column :created_date
        column :updated_by
        column :updated_date
        column :realm
        column :username
        column :password
        column :credentials
        column :challenges
        column :email
        column :emailverified
        column :verificationtoken
        column :status
        column :created
        column :lastupdated
        column :provider
        column :nick_name
        actions
    end

    filter :id
    filter :user_name
    filter :first_name
    filter :middle_name
    filter :last_name
    filter :password
    filter :email
    filter :cell_number
    filter :social_media_provider
    filter :social_media_id
    filter :created_at
    form do |f|
        f.inputs "New User" do
            f.input :user_name
            f.input :first_name
            f.input :middle_name
            f.input :last_name
            f.input :cell_number
            f.input :social_media_provider
            f.input :social_media_id
            f.input :created_by
            f.input :created_date
            f.input :updated_by
            f.input :updated_date
            f.input :realm
            f.input :username
            f.input :password
            f.input :credentials
            f.input :challenges
            f.input :email
            f.input :emailverified
            f.input :verificationtoken
            f.input :status
            f.input :created
            f.input :lastupdated
            f.input :provider
            f.input :nick_name
        end
        f.actions
    end
end

下面是我的控制器:

app/controller/gca_user_controller.rb

class GcaUsersController < InheritedResources::Base
    private
    def gca_user_params
        params.require(:gca_user).permit(:user_name, :first_name, :middle_name, :last_name, :cell_number, :social_media_provider, :social_media_id, :created_by, :created_date, :updataed_by, :updated_date, :realm, :username, :password, :credentials, :challenges, :email, :emailverified, :verificationtoken, :status, :created, :lastupdated, :provider, :nick_name )
    end
end

以下是我的 db-migrate 文件

-db/迁移

class CreateGcaUsers < ActiveRecord::Migration
    def change
        create_table :gca_users do |t|
            t.column :user_name, :string
            t.column :first_name, :string
            t.column :middle_name, :string
            t.column :last_name, :string
            t.column :cell_number, :string
            t.column :social_media_provider, :string
            t.column :social_media_id, :string
            t.column :created_by, :bigint
            t.column :created_date, :datetime
            t.column :updated_by, :bigint
            t.column :updated_date, :datetime
            t.column :realm, :string
            t.column :username, :string
            t.column :password, :string
            t.column :credentials, :string
            t.column :challenges, :string
            t.column :email, :string
            t.column :emailverified , :boolean
            t.column :verificationtoken, :string
            t.column :status, :string
            t.column :created, :datetime
            t.column :lastupdated, :datetime
            t.column :provider, :string
            t.column :nick_name, :string
        end
    end
end

现在请告诉我应该怎么做才能完全满足上述要求?

【问题讨论】:

    标签: ruby-on-rails activeadmin


    【解决方案1】:

    您可以覆盖 GcaUser 模型的 ActiveAdmin 更新操作 在“app/admin/gca_user.rb”中使用以下代码

    ActiveAdmin.register GcaUser do 
      controller do
         def update(options={}, &block)
          # You can put your send email code over here 
          super do |success, failure| 
            block.call(success, failure) if block
            failure.html { render :edit }
          end
         end
      end
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多