将现有路由添加到 ActiveAdmin 上的新按钮 rails
Adding existing route to a new button on ActiveAdmin rails
经过大量搜索,我终于找到了一种向 ActiveAdmin 默认模板添加新按钮的方法。
以下是我的 User.rb 文件,我在其中添加了一个新按钮
action_item only: :show do
link_to "Resend Email"
end
目前正在路由以在单击时显示操作。但我想将它路由到 UserMailer#confirmation_instructions
routes.rb
Rails.application.routes.draw do
ActiveAdmin.routes(self)
devise_for :users,controllers: {registrations: 'users/registrations',sessions: 'users/sessions',confirmations: 'users/confirmations'}
end
Usermailer.rb
def confirmation_instructions(record, token, opts={})
@system_email = SystemEmail.find_by(title: 'Email Verification')
@subject = @system_email.try(:subject).to_s
@subject = "Email Verification" if @subject.blank?
opts = {subject: @subject}
@token = token
devise_mail(record, :confirmation_instructions, opts)
end
我怎样才能将它路由到 UserMailer#confirmation_instructions
??这个 AI 在普通的 MVC 架构上完成了这些事情。但这真的让我头疼。有人可以告诉我如何实现吗?
应该是这样的:
action_item only: :show do
link_to(
'Resend email',
resend_email_admin_user_path(user_id: user.id),
data: { confirm: 'Are you sure you want to resend it?' }
)
end
member_action :resend_email do
user = User.find(params[:user_id])
UserMailer.confirmation_instructions(user, user.token, {})
redirect_to admin_user_path(user), notice: 'confirmation is sent'
end
经过大量搜索,我终于找到了一种向 ActiveAdmin 默认模板添加新按钮的方法。 以下是我的 User.rb 文件,我在其中添加了一个新按钮
action_item only: :show do
link_to "Resend Email"
end
目前正在路由以在单击时显示操作。但我想将它路由到 UserMailer#confirmation_instructions
routes.rb
Rails.application.routes.draw do
ActiveAdmin.routes(self)
devise_for :users,controllers: {registrations: 'users/registrations',sessions: 'users/sessions',confirmations: 'users/confirmations'}
end
Usermailer.rb
def confirmation_instructions(record, token, opts={})
@system_email = SystemEmail.find_by(title: 'Email Verification')
@subject = @system_email.try(:subject).to_s
@subject = "Email Verification" if @subject.blank?
opts = {subject: @subject}
@token = token
devise_mail(record, :confirmation_instructions, opts)
end
我怎样才能将它路由到 UserMailer#confirmation_instructions
??这个 AI 在普通的 MVC 架构上完成了这些事情。但这真的让我头疼。有人可以告诉我如何实现吗?
应该是这样的:
action_item only: :show do
link_to(
'Resend email',
resend_email_admin_user_path(user_id: user.id),
data: { confirm: 'Are you sure you want to resend it?' }
)
end
member_action :resend_email do
user = User.find(params[:user_id])
UserMailer.confirmation_instructions(user, user.token, {})
redirect_to admin_user_path(user), notice: 'confirmation is sent'
end