How to navigate between view using select

Hi, im new to rails and I got a mind boggling issue.

I have a select form populated with Institutes names e.g University of Yale. These records are obtained from the Institute ActiveRecord.The institutes table has a many to many relationships with the course table.

My application should work such that when you select a certain institute using a select() component and press the button proceed to view courses available for the institute chosen. This will take you to a new page with the courses.

My problem is that i don't know how i will store selected institute id and use it to select specific courses using the many to many relationships.. below are my code snippets

Got the same problem myself and I'm yet to crack it!

There are few issue in this:

  1. You should not be doing sql queries directly from views, instead set the instance variable in controller and pass it to view.

  2. Your form is submitting to /course/show, instead it should be /course/list

  3. Controller name should be plural, you have got the name as Course Controller, but the corresponding views directory is “courses”

  4. To follow along with rails standards, you should be name of your “list” action should be “index”

  5. Your select field should set “institute”, “id” instead of “select”, “name”

  6. Course list action should filter the course list based on the institute id, something like Course.find_by_institute_id(params[:institute][:id])

Fix these and maybe you will figure out a solution.

Chirag http://sumeruonrails.com

Chirag Singhal wrote in post #1017338:

There are few issue in this:

Thanx alot Chirag, let me try out your hints . Will get back to you

Hello guys!

I am new in rails.

I am querying the courses table for specific courses that belong to specific institute using this sql statement. I'm getting the same courses for all the institutes that I have. Any help on what to put in place of 1 or how to restructure my query will be highly appreciated.

Here is my query!

<%= select ("course_code", "course_name",Course.find_by_sql("select i.name, c.course_name from institutes as i, courses as c , institute_courses as ic where i.id = ic.institute_id and c.id = ic.course_id and i.id = 1;").collect {|c| [ c.course_name, c.id ] })%>

Why are you writing SQL statements instead of taking advantage of associations, one of Rails' most powerful features?