Disable Administrate Button
The below, I have read, should disallow the presentation of the NEW button.
I have found that the logic to check the program count is not being honored. It also is preventing the editing of the program created.
Chris Oliver
, what did I mess up here?
I have found that the logic to check the program count is not being honored. It also is preventing the editing of the program created.
module Admin class ProgramsController < Admin::ApplicationController # Overwrite any of the RESTful controller actions to implement custom behavior # For example, you may want to send an email after a foo is updated. # # def update # super # send_foo_updated_email(requested_resource) # end # Override this method to specify custom lookup behavior. # This will be used to set the resource for the `show`, `edit`, and `update` # actions. # # def find_resource(param) # Foo.find_by!(slug: param) # end def valid_action?(name, resource = resource_class) if Program.count >= 7 %w[new].exclude?(name.to_s) && super end end # The result of this lookup will be available as `requested_resource` # Override this if you have certain roles that require a subset # this will be used to set the records shown on the `index` action. # # def scoped_resource # if current_user.super_admin? # resource_class # else # resource_class.with_less_stuff # end # end # Override `resource_params` if you want to transform the submitted # data before it's persisted. For example, the following would turn all # empty values into nil values. It uses other APIs such as `resource_class` # and `dashboard`: # # def resource_params # params.require(resource_class.model_name.param_key). # permit(dashboard.permitted_attributes). # transform_values { |value| value == "" ? nil : value } # end # See https://administrate-prototype.herokuapp.com/customizing_controller_actions # for more information end end
For those with similar questions:
rails generate administrate:views:index Program
<% if Program.count < 1 %> <div> <%= link_to( t( "administrate.actions.new_resource", name: display_resource_name(page.resource_name, singular: true).downcase ), [:new, namespace, page.resource_path.to_sym], class: "button", ) if valid_action?(:new) && show_action?(:new, new_resource) %> </div> <% end %>
Notifications
You’re not receiving notifications from this thread.