大家好,
我在我的项目中实现了rails admin现在有几件事我目前停留在
我想要一个链接(标记为发布者)在列表视图中我的用户控制器在rails admin中作为ajax链接使用 remote =>完成的操作在其后写入关联的jscode和html代码的rails中的
对于上述自定义操作“ mark_as_publisher ”我定义了这样的配置设置
在 config / rails_admin.rb
内 config.actions do
# root actions
dashboard # mandatory
# collection actions
index # mandatory
new
export
history_index
bulk_delete
# member actions
show
edit
delete
history_show
show_in_app
member :mark_as_publisher
end
现在,自定义操作的定义如下所示
require "rails_admin_mark_as_publisher/engine"
module RailsAdminMarkAsPublisher
end
require 'rails_admin/config/actions'
module RailsAdmin
module Config
module Actions
class MarkAsPublihser < Base
RailsAdmin::Config::Actions.register(self)
register_instance_option :collection do
true
end
register_instance_option :http_methods do
[:get,:post]
end
register_instance_option :route_fragment do
'mark_as_publisher'
end
register_instance_option :controller do
Proc.new do
binding.pry
if request.get?
respond_to do |format|
format.html { render @action.template_name}
end
elsif request.post?
redirect_path = nil
if @object.update_attributes(:manager => true)
flash[:success] = t("admin.flash.successful", :name => @model_config.label, :action => t("admin.actions.mark_as_publisher.done"))
redirect_path = index_path
else
flash[:error] = t("admin.flash.error", :name => @model_config.label, :action => t("admin.actions.mark_as_publisher.done"))
redirect_path = back_or_index
end
end
end
end
end
end
end
end
现在 app / view / rails_admin / main / mark_as_publisher.erb 中相同定义的视图看起来像这样
<%= rails_admin_form_for @object, :url => mark_as_publisher_path(:model_name => @abstract_model.to_param, :id => @object.id), :as => @abstract_model.param_key,:method => :post ,:html => { :class => "form-horizontal denser", :data => { :title => "Mark" } } do |form| %>
<%= form.submit "save" %>
<%end%>
mark_as_publisher的get和post url确实由上面的控制器定义并保存上面的表单结果,错误名为
could not find routes for '/user/5/mark_as_publisher' :method => "post"
有没有人知道我缺少什么
答案 0 :(得分:1)
很抱歉延迟回复,但我也遇到了同样的问题。
编辑:我注意到你已经有了这个,你试过重启服务器了吗?如果添加以下内容,则会修复它。
register_instance_option :http_methods do
[:get,:post]
end
默认情况下,问题Actions
仅响应:get requests。
如果你跑
rake routes
你会看到
的内容 mark_as_publisher_path GET /:model_name/:id/mark_as_publisher(.:format) rails_admin/main#mark_as_publisher
https://github.com/sferik/rails_admin/blob/master/lib/rails_admin/config/actions/base.rb#L89