I hve a relationship like this in my model: Student has_one :student_fail
StudentFail belongs_to :student_fail_state belongs_to :student
StudentFailState has_many :students, :through => :student_fail has_many :student_fails
In terms of the controller, what would be the best way to update attributes to the student_fails table?
Here's the view stuff:
resources_form_helper.rb: def render_form_collection_field(form, name, label = nil, size = nil) render_form_field(form, name, label) do params = yield form.collection_select name, params[:collection], params[:value_method],params[:text_method], {}, {:size => size} end end
def render_form_field(form, name, label=nil) label ||= name.to_s.gsub(/_id$/, '').gsub('_', ' ') label_class = "error" if error_fields.include?(name.to_sym) <<END_HTML <li> #{form.label name, label, :class => label_class} <div>#{yield}</div> </li> END_HTML end view: [ render_form_collection_field(f, :student_fail_state_id, 'level') { { :collection => StudentFailState.true, :value_method => :id, :text_method => :name} } ] #:student_fail_state_id doesn't currently working because it's not in the student table.
Any suggestions on how to update other tables from a dropdown menu? Thanks.