我正在使用 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。