Rails 动作被调用两次
Rails action being called twice
正如标题所说,我的操作在单击一次时被触发了两次。
该操作仅用于复制模型然后保存复制的模型。
module RailsAdmin
module Config
module Actions
class CopyAction < RailsAdmin::Config::Actions::Base
RailsAdmin::Config::Actions.register(self)
register_instance_option :member do
true
end
register_instance_option :http_methods do
[:get]
end
register_instance_option :controller do
proc do
if request.get? # EDIT
@newObject = @object.dup
objectNameCopy = @object.name + "_copy_"
@queues = Filter.where('name LIKE ?',"%#{objectNameCopy}%")
x = 1
@queues.each do |q|
x=x+1
end
@newObject.name = @newObject.name + "_copy_" + x.to_s
@newObject.key = @newObject.key + "_copy_" + x.to_s
if @newObject.save!
respond_to do |format|
format.html { redirect_to_on_success }
end
else
@newObject.errors.full_messages.each do |message|
flash.now[:error] = message
end
end
end
end
end
register_instance_option :link_icon do
'fa fa-copy'
end
end
end
end
end
我注意到,通过手动输入 URL,它可以正常工作。
单击 运行 此操作的图标时,它会打开一个 URL,最后是 #
。我不知道这是从哪里来的。
正如 @max 在评论中所说,这可能是一个 turbolinks 问题,请尝试将其禁用以进行此类操作
module RailsAdmin
module Config
module Actions
class CopyAction < RailsAdmin::Config::Actions::Base
RailsAdmin::Config::Actions.register(self)
# ADD THIS
register_instance_option :pjax? do
false
end
end
end
end
end
正如标题所说,我的操作在单击一次时被触发了两次。 该操作仅用于复制模型然后保存复制的模型。
module RailsAdmin
module Config
module Actions
class CopyAction < RailsAdmin::Config::Actions::Base
RailsAdmin::Config::Actions.register(self)
register_instance_option :member do
true
end
register_instance_option :http_methods do
[:get]
end
register_instance_option :controller do
proc do
if request.get? # EDIT
@newObject = @object.dup
objectNameCopy = @object.name + "_copy_"
@queues = Filter.where('name LIKE ?',"%#{objectNameCopy}%")
x = 1
@queues.each do |q|
x=x+1
end
@newObject.name = @newObject.name + "_copy_" + x.to_s
@newObject.key = @newObject.key + "_copy_" + x.to_s
if @newObject.save!
respond_to do |format|
format.html { redirect_to_on_success }
end
else
@newObject.errors.full_messages.each do |message|
flash.now[:error] = message
end
end
end
end
end
register_instance_option :link_icon do
'fa fa-copy'
end
end
end
end
end
我注意到,通过手动输入 URL,它可以正常工作。
单击 运行 此操作的图标时,它会打开一个 URL,最后是 #
。我不知道这是从哪里来的。
正如 @max 在评论中所说,这可能是一个 turbolinks 问题,请尝试将其禁用以进行此类操作
module RailsAdmin
module Config
module Actions
class CopyAction < RailsAdmin::Config::Actions::Base
RailsAdmin::Config::Actions.register(self)
# ADD THIS
register_instance_option :pjax? do
false
end
end
end
end
end