Search code examples
rubyruby-on-rails-4simple-form-for

Passing argument to a method called by symbol


I am trying to call a custom method let's say 'get_divisions_by_school_id' and pass a variable to that method in simple_form_for

Instead of :divisions, I want to call :get_divisions_by_school_id(@school.id) in the following code:

<%= f.grouped_collection_select(:division_id, @teacher.standards, :divisions, :id, :id, :name,  {:class => "input-box-width1", :required => true},{:multiple=>true}) %>

I want something like :

<%= f.grouped_collection_select(:division_id, @teacher.standards, :get_divisions_by_school_id(@school.id), :id, :id, :name,  {:class => "input-box-width1", :required => true},{:multiple=>true}) %>

Solution

  • You can create a class method that takes a school ID and does it's thing:

    class Teacher < ActiveRecord::Base 
        def self.get_divisions_by_school_id(school_id)
            # Foobarbaz.
        end
    end
    

    And use it like:

    <%= f.grouped_collection_select(:division_id, @teacher.standards, Teacher.get_divisions_by_school_id(@school.id), :id, :id, :name,  {:class => "input-box-width1", :required => true},{:multiple=>true}) %>