That is fine, though you could make it more 'RESTful' by adding it as a nested resource. You can read about that here<http://railscasts.com/episodes/139-nested-resources>. The RailsCast is a little old, but you should get the idea.
With respect to your current problem, what is the url you are using in your js? On Thu, May 3, 2012 at 5:23 PM, akshar jamgaonkar < akshar.jamgaon...@gmail.com> wrote: > Iam sorry i didnt get you.......... i have created a new action for the > ajax stuff is this approach wrong..... This is how my states controller is > > > > ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- > > class StatesController < ApplicationController > # GET /states > # GET /states.json > def index > @states = State.all > > respond_to do |format| > format.html # index.html.erb > format.json { render json: @states } > end > end > > # GET /states/1 > # GET /states/1.json > def show > @state = State.find(params[:id]) > > respond_to do |format| > format.html # show.html.erb > format.json { render json: @state } > end > end > > # GET /states/new > # GET /states/new.json > def new > @state = State.new > respond_to do |format| > format.html # new.html.erb > format.json { render json: @state } > end > end > > # GET /states/1/edit > def edit > @state = State.find(params[:id]) > end > > # POST /states > # POST /states.json > def create > @state = State.new(params[:state]) > > respond_to do |format| > if @state.save > format.html { redirect_to @state, notice: 'State was successfully > created.' } > format.json { render json: @state, status: :created, location: > @state } > else > format.html { render action: "new" } > format.json { render json: @state.errors, status: > :unprocessable_entity } > end > end > end > > def countries_state > @state = State.find("country_id = :c_id",{:c_id => params[:country]}) > respond_to do |format| > format.html > format.js > end > end > > # PUT /states/1 > # PUT /states/1.json > def update > @state = State.find(params[:id]) > > respond_to do |format| > if @state.update_attributes(params[:state]) > format.html { redirect_to @state, notice: 'State was successfully > updated.' } > format.json { head :ok } > else > format.html { render action: "edit" } > format.json { render json: @state.errors, status: > :unprocessable_entity } > end > end > end > > # DELETE /states/1 > # DELETE /states/1.json > def destroy > @state = State.find(params[:id]) > @state.destroy > > respond_to do |format| > format.html { redirect_to states_url } > format.json { head :ok } > end > end > end > > > > > > > ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ > > > > > > > > On Thu, May 3, 2012 at 5:20 PM, Aziz Bookwala <aziz.bookw...@gmail.com>wrote: > >> Make sure ur using the currect URL for the new action. >> >> >> On Thu, May 3, 2012 at 5:18 PM, akshar jamgaonkar < >> akshar.jamgaon...@gmail.com> wrote: >> >>> Yea it looks like this... >>> >>> >>> match "/states/countries_state/:country_id" => "states#countries_state" >>> >>> resources :clients >>> >>> resources :skill_sets >>> >>> resources :technologies >>> >>> resources :level_of_contacts >>> >>> resources :states >>> >>> resources :discounts >>> >>> resources :countries >>> >>> resources :roles >>> >>> get "home/index" >>> >>> >>> On Thu, May 3, 2012 at 5:15 PM, Aziz Bookwala >>> <aziz.bookw...@gmail.com>wrote: >>> >>>> Make sure this route comes before the route entry for the country >>>> resource. >>>> >>>> >>>> On Thu, May 3, 2012 at 5:12 PM, akshar jamgaonkar < >>>> akshar.jamgaon...@gmail.com> wrote: >>>> >>>>> Yes i have added....it looks like this >>>>> >>>>> match "/states/countries_state/:country_id" => "states#countries_state" >>>>> >>>>> >>>>> On Thu, May 3, 2012 at 5:10 PM, Aziz Bookwala <aziz.bookw...@gmail.com >>>>> > wrote: >>>>> >>>>>> Did you add a route for this new action? >>>>>> >>>>>> >>>>>> On Thu, May 3, 2012 at 5:08 PM, akshar jamgaonkar < >>>>>> akshar.jamgaon...@gmail.com> wrote: >>>>>> >>>>>>> Thanks Aziz....... I have wriiten a countries_state action and in >>>>>>> states controller, and in application.js i have modified the path like >>>>>>> this >>>>>>> var country_states_path = '/states/countries_state/'; however on >>>>>>> console its giving me eroor like >>>>>>> <pre>Couldn't find State with id=countries_state</pre> ... Iam >>>>>>> struggling to find what;s going wrong as iam pretty new to all >>>>>>> this...thanks a lot all of you for your help...... >>>>>>> >>>>>>> >>>>>>> On Thu, May 3, 2012 at 5:03 PM, Aziz Bookwala < >>>>>>> aziz.bookw...@gmail.com> wrote: >>>>>>> >>>>>>>> Hey AJ >>>>>>>> >>>>>>>> Yes, to serve any request made by your client, you would need >>>>>>>> something on the server to handle the request. >>>>>>>> As for rendering the dropdown, this is a pretty simple thing to do >>>>>>>> with jQuery. Look around, you should find something quite easily. >>>>>>>> >>>>>>>> >>>>>>>> On Thu, May 3, 2012 at 5:01 PM, akshar jamgaonkar < >>>>>>>> akshar.jamgaon...@gmail.com> wrote: >>>>>>>> >>>>>>>>> Hey Aziz, >>>>>>>>> >>>>>>>>> really thanks for you repl..........so do i need to write a >>>>>>>>> controller action that would return me the states depending on the >>>>>>>>> country >>>>>>>>> and how do i render the state drop down in Cilent Form...Thanks.... >>>>>>>>> >>>>>>>>> Thanks, >>>>>>>>> AJ >>>>>>>>> >>>>>>>>> >>>>>>>>> On Thu, May 3, 2012 at 4:46 PM, Aziz Bookwala < >>>>>>>>> aziz.bookw...@gmail.com> wrote: >>>>>>>>> >>>>>>>>>> Hey AJ >>>>>>>>>> >>>>>>>>>> In your ajax call, you need to pass the id of the selected state >>>>>>>>>> if you are using a nested resource url structure. >>>>>>>>>> Your js would looks something like this: >>>>>>>>>> >>>>>>>>>> $(document).ready(function() { >>>>>>>>>> var country_states_path = '/countries/:id/states; >>>>>>>>>> $("#client_country_id").change(function() { >>>>>>>>>> var state_id = $(this).val(); >>>>>>>>>> $.ajax({ >>>>>>>>>> type: "GET", >>>>>>>>>> url: country_states_path.replace(":id", id), >>>>>>>>>> success: function(data) { >>>>>>>>>> // Code to populate cities >>>>>>>>>> } >>>>>>>>>> }); >>>>>>>>>> }); >>>>>>>>>> }); >>>>>>>>>> >>>>>>>>>> Incase you are not using nested resources, you still need to pass >>>>>>>>>> the state_id that was selected currently. Using the below js, in your >>>>>>>>>> controller, the state id would be available as params[:state] >>>>>>>>>> >>>>>>>>>> $(document).ready(function() { >>>>>>>>>> var country_states_path = '/states/'; >>>>>>>>>> $("#client_country_id").change(function() { >>>>>>>>>> var country_id = $(this).val(); >>>>>>>>>> $.ajax({ >>>>>>>>>> type: "GET", >>>>>>>>>> data: {country: country_id}, >>>>>>>>>> url: country_states_path, >>>>>>>>>> success: function(data) { >>>>>>>>>> // Code to populate cities >>>>>>>>>> } >>>>>>>>>> }); >>>>>>>>>> }); >>>>>>>>>> }); >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Thu, May 3, 2012 at 12:42 PM, AJ >>>>>>>>>> <akshar.jamgaon...@gmail.com>wrote: >>>>>>>>>> >>>>>>>>>>> Hi Hassan, >>>>>>>>>>> >>>>>>>>>>> I am Bit of a novoice to this...... iam nt sure wether this is >>>>>>>>>>> correct >>>>>>>>>>> approach...in my application.js file i have wriiten >>>>>>>>>>> >>>>>>>>>>> $(document).ready(function() { >>>>>>>>>>> $("#client_country_id").change(function() { >>>>>>>>>>> $.ajax({ >>>>>>>>>>> type: "GET", >>>>>>>>>>> url: '/states/1', >>>>>>>>>>> success: function(data) { >>>>>>>>>>> // Code >>>>>>>>>>> } >>>>>>>>>>> }); >>>>>>>>>>> }); >>>>>>>>>>> }); >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> and my clients form has state feidl like this >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> <div class="field row odd"> >>>>>>>>>>> <%= f.label :state1 %> >>>>>>>>>>> <%= f.select 'state_id', State.find(:all).collect{|s| >>>>>>>>>>> [s.name,s.id]} %> >>>>>>>>>>> </div> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> now i want to pass the country id and ftecth state depending on >>>>>>>>>>> it..... do i include the above div in a prtial and what to write >>>>>>>>>>> in >>>>>>>>>>> the state controller..... >>>>>>>>>>> >>>>>>>>>>> Thanks in advance. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Thanks & Regards, >>>>>>>>>>> >>>>>>>>>>> On May 2, 7:14 pm, Hassan Schroeder <hassan.schroe...@gmail.com> >>>>>>>>>>> wrote: >>>>>>>>>>> > On Wed, May 2, 2012 at 7:06 AM, akshar jamgaonkar >>>>>>>>>>> > >>>>>>>>>>> > <akshar.jamgaon...@gmail.com> wrote: >>>>>>>>>>> > > i have gone through this but it has an example where >>>>>>>>>>> Javascript has been >>>>>>>>>>> > > used , i want to use AJAX and JQuery, >>>>>>>>>>> > >>>>>>>>>>> > So what's the problem? What have you tried so far, and how did >>>>>>>>>>> it >>>>>>>>>>> > not work? >>>>>>>>>>> > >>>>>>>>>>> > -- >>>>>>>>>>> > Hassan Schroeder ------------------------ hassan.schroe... >>>>>>>>>>> @gmail.comhttp://about.me/hassanschroeder >>>>>>>>>>> > twitter: @hassan >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>>> Google Groups "Ruby on Rails: Talk" group. >>>>>>>>>>> To post to this group, send email to >>>>>>>>>>> rubyonrails-talk@googlegroups.com. >>>>>>>>>>> To unsubscribe from this group, send email to >>>>>>>>>>> rubyonrails-talk+unsubscr...@googlegroups.com. >>>>>>>>>>> For more options, visit this group at >>>>>>>>>>> http://groups.google.com/group/rubyonrails-talk?hl=en. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> - Aziz M. Bookwala >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>> Google Groups "Ruby on Rails: Talk" group. >>>>>>>>>> To post to this group, send email to >>>>>>>>>> rubyonrails-talk@googlegroups.com. >>>>>>>>>> To unsubscribe from this group, send email to >>>>>>>>>> rubyonrails-talk+unsubscr...@googlegroups.com. >>>>>>>>>> For more options, visit this group at >>>>>>>>>> http://groups.google.com/group/rubyonrails-talk?hl=en. >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Thanks & Regards, >>>>>>>>> Akshar Jamgaonkar >>>>>>>>> >>>>>>>>> -- >>>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>> Groups "Ruby on Rails: Talk" group. >>>>>>>>> To post to this group, send email to >>>>>>>>> rubyonrails-talk@googlegroups.com. >>>>>>>>> To unsubscribe from this group, send email to >>>>>>>>> rubyonrails-talk+unsubscr...@googlegroups.com. >>>>>>>>> For more options, visit this group at >>>>>>>>> http://groups.google.com/group/rubyonrails-talk?hl=en. >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> - Aziz M. Bookwala >>>>>>>> >>>>>>>> -- >>>>>>>> You received this message because you are subscribed to the Google >>>>>>>> Groups "Ruby on Rails: Talk" group. >>>>>>>> To post to this group, send email to >>>>>>>> rubyonrails-talk@googlegroups.com. >>>>>>>> To unsubscribe from this group, send email to >>>>>>>> rubyonrails-talk+unsubscr...@googlegroups.com. >>>>>>>> For more options, visit this group at >>>>>>>> http://groups.google.com/group/rubyonrails-talk?hl=en. >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Thanks & Regards, >>>>>>> Akshar Jamgaonkar >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "Ruby on Rails: Talk" group. >>>>>>> To post to this group, send email to >>>>>>> rubyonrails-talk@googlegroups.com. >>>>>>> To unsubscribe from this group, send email to >>>>>>> rubyonrails-talk+unsubscr...@googlegroups.com. >>>>>>> For more options, visit this group at >>>>>>> http://groups.google.com/group/rubyonrails-talk?hl=en. >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> - Aziz M. Bookwala >>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "Ruby on Rails: Talk" group. >>>>>> To post to this group, send email to >>>>>> rubyonrails-talk@googlegroups.com. >>>>>> To unsubscribe from this group, send email to >>>>>> rubyonrails-talk+unsubscr...@googlegroups.com. >>>>>> For more options, visit this group at >>>>>> http://groups.google.com/group/rubyonrails-talk?hl=en. >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Thanks & Regards, >>>>> Akshar Jamgaonkar >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Ruby on Rails: Talk" group. >>>>> To post to this group, send email to rubyonrails-talk@googlegroups.com >>>>> . >>>>> To unsubscribe from this group, send email to >>>>> rubyonrails-talk+unsubscr...@googlegroups.com. >>>>> For more options, visit this group at >>>>> http://groups.google.com/group/rubyonrails-talk?hl=en. >>>>> >>>> >>>> >>>> >>>> -- >>>> - Aziz M. Bookwala >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Ruby on Rails: Talk" group. >>>> To post to this group, send email to rubyonrails-talk@googlegroups.com. >>>> To unsubscribe from this group, send email to >>>> rubyonrails-talk+unsubscr...@googlegroups.com. >>>> For more options, visit this group at >>>> http://groups.google.com/group/rubyonrails-talk?hl=en. >>>> >>> >>> >>> >>> -- >>> Thanks & Regards, >>> Akshar Jamgaonkar >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Ruby on Rails: Talk" group. >>> To post to this group, send email to rubyonrails-talk@googlegroups.com. >>> To unsubscribe from this group, send email to >>> rubyonrails-talk+unsubscr...@googlegroups.com. >>> For more options, visit this group at >>> http://groups.google.com/group/rubyonrails-talk?hl=en. >>> >> >> >> >> -- >> - Aziz M. Bookwala >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Ruby on Rails: Talk" group. >> To post to this group, send email to rubyonrails-talk@googlegroups.com. >> To unsubscribe from this group, send email to >> rubyonrails-talk+unsubscr...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/rubyonrails-talk?hl=en. >> > > > > -- > Thanks & Regards, > Akshar Jamgaonkar > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk@googlegroups.com. > To unsubscribe from this group, send email to > rubyonrails-talk+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/rubyonrails-talk?hl=en. > -- - Aziz M. Bookwala -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.