Skinny model, fat controller in Rails managing user IP addresses
First of all you should look at your controller and see what common functionality you can extract to a private methods and callbacks.

Another fairly large concern with you controller is that you are just assuming that a record is created or deleted without checking the return value. Create / Update / Destroy actions can and will fail.

class IpAddressesController &lt; ApplicationController

    before_filter :set_ip_address, only: [:show, :edit, :update, :destroy]

    def index
        @ip_addresses = IpAddress.all.order(:title) # extract to model default scope?
    end

    def show
    end

    def new
        load_form_resources
        @ip_address = IpAddress.new
    end

    def create
        @ip_address = IpAddress.new(ip_address_params)
        if @ip_address.save 
            redirect_to ip_addresses_path
        else
            load_form_resources
            render :new
        end
    end

    def destroy
        # Remember that destroy can actually fail! 
        if @ip_address.destroy
            flash.success "Record successfully deleted"
            redirect_to ip_addresses_path
        else
            flash.alert "Record not deleted"
        end
    end

    private 

        def set_ip_address
          @ip_address = IpAddress.find(params[:id])
        end 

        def load_form_resources
            @ip_address_roles = IpAddressRole.all
            @servers = Server.all
            @ip_address_users = IpAddressUser.all
        end

        def ip_address_params
            params.require(:ip_address).permit(:title, :server, :user, :is_in_use, :role)
        end
end


When it comes to your model, then I usually preach so much against boolean state flags that I feel somewhat like a broken record.

Instead of having a ip_addresses.is_in_use column you could add a ip_addresses.state integer column.

Rails has a really fancy trick called enums.

class IpAddress &lt; ActiveRecord::Base
  enum state: [:available, :in_use] 
end


Which gives you:

IpAddress.available # gets all free ip adresses
IpAddress.in_use # gets all in_use ip adresses
@ip_adress.available? # check status
@ip_adress.in_use?
@ip_adress.in_use! # setters