Rails管理员:无法自定义控制器操作



我正在使用Rails Administrate,并希望覆盖控制器上的new操作。文档表明这很简单。然而,该应用程序似乎忽略了我的覆盖,并直接渲染new.html.erb,而不是通过我对new方法的覆盖:

控制器:

class MyOrderController < Administrate::ApplicationController
def valid_action?(name, resource = resource_class)
%w[edit destroy].exclude?(name.to_s) && super
end
def new
@orders = Order.find_by(property: params[:property])
end
end

视图:

<div>
<%= @orders.each { |order| %>
<%=  order.id  %>
<% } %>
</div>

特别是,当转到/orders/new时,应用程序不会首先执行我的自定义new操作,这会导致一个错误,因为@orders为nil。

Nevermind,原因是一个愚蠢的语法错误:end语句位于错误的位置:

module MyModule do
class MyOrderController < Administrate::ApplicationController
def valid_action?(name, resource = resource_class)
%w[edit destroy].exclude?(name.to_s) && super
end

end <-- in wrong place
def new <-- outside the scope of Controller 
@orders = Order.find_by(property: params[:property])
end
end

相关内容

  • 没有找到相关文章

最新更新