Skip to content
Quick and painless action links for your rails applications
Ruby
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib
.gitignore
.ruby-version
Gemfile
MIT-LICENSE
README.rdoc
Rakefile
action_links.gemspec

README.rdoc

Action_Links

Action_Links automatically includes action links (show, edit, destroy) based on the current page and user roles/permissions.

Installation

Add the following to your Gemfile

gem "action_links"

From the command line

> bundle install

Action Links is built to work with Declarative Authorization

Configuration

Configuration is optional. Everything will work out of the box.

ActionLinks.configure do |config|
  @bootstrap_action_classes = { :show => 'btn', :edit => 'btn', :destroy => 'btn btn-danger' }
  @bootstrap_action_icons = { :show => 'icon-eye-open', :edit => 'icon-pencil', :destroy => 'icon-remove icon-white' }
  @action_icons = { :show => 'eye-open', :edit => 'pencil', :destroy => 'remove' }
end

Usage

  • Basic Usage

    action_links @user
  • Include actions

    action_links @user, :include => [:download]
  • Exclude actions

    action_links @user, :exclude => [:edit, :destroy]
  • Pass in block

    action_links @user do
      link_to "Hello World", dashboard_path
    end
  • Bootstrap buttons. See configuration to customize button types and icons.

    bootstrap_action_links @user
  • Namespaced objects

    action_links [:manage, @product]
  • Return just the link with optional parameters

    =action_link :edit, @event
    // or more advanced
    =action_link :clone, @event, link_wrapper: :li, url: url_for([:clone, @event]), icon: 'copy', text: 'Copy', class: 'btn'
  • You can even pass in custom attributes with the :html tag

    =action_link :clone, @event, class: 'btn', html: { id: 'super_cool_clone_button' }
    // NOTE: if you define 'class' in the :html hash, it will overwrite the default class,
    //       otherwise you can define class outside of the :html hash like in the above example 
    //       and it will be added to the default value.
Something went wrong with that request. Please try again.