Leonardo Mateo wrote: > On Sun, Oct 25, 2009 at 3:23 PM, Misiek Sz > <rails-mailing-l...@andreas-s.net> wrote: >> saved when the form is submitted? > OK, now the situation is clearer for me. There's something you're not > getting from associations, let's see if with the example you get it > more clear. > If you want to create the association when you create the education > plan, why would you try to get it on the get_info action and not on > the create action? > When you get (render) the student info on the create form for > education plan, you should keep the student id and send it with the > rest of the education plan parameters as the > education_plan[student_id]. > Then, in the create action, you can do > EducationPlan.new(params[:education_plan]) (or whatever your params > are called) and, if you have the right student_id the relationship > should be created automatically. > > If it doesn't work, you should "pastie" your code so we can debug it > better. > > Hope it helps. > > -- > Leonardo Mateo. > There's no place like ~ was on the road past two days..... I want to do exactly what you are saying Leonardo. Here is my code for education_plans_controller.rb ---------------------------- def create @education_plan = EducationPlan.new(params[:education_plan]) # this is my sneaky way around, which I don't want to use....You'll see what i'm doing when you see the view # @student = Student.find(params[:student_id]) # @tutor = Tutor.find(params[:tutor_id]) # @education_plan.student = @student # @education_plan.tutor = @tutor
respond_to do |format| if @education_plan.save flash[:notice] = 'EducationPlan was successfully created.' format.html { redirect_to(@education_plan) } format.xml { render :xml => @education_plan, :status => :created, :location => @education_plan } else format.html { render :action => "new" } format.xml { render :xml => @education_plan.errors, :status => :unprocessable_entity } end end end def new @education_plan = EducationPlan.new @education_plan.plan_details.build respond_to do |format| format.html # new.html.erb format.xml { render :xml => @education_plan } end end ---------------------------- education_plan - new view ---------------------------- <h1>New Education Plan</h1> <% form_for(@education_plan) do |f| %> <%= f.error_messages %> <div> Enter Student OSIS: <%=text_field_tag :osis %><%= image_tag 'loading.gif', :id =>'loading', :style => 'display: none'%> <div id="student_info"></div> </div> <table> <tr> <div> <table> <thead> <tr> <th></th><th>Code #</th><th>Start date</th><th>Evaluation/Measurement/Assesment</th> </tr> </thead> <tbody> <% 6.times do |i| %> <% f.fields_for :plan_details do |p| %> <%= render :partial => 'new_detail', :object => p %> <% end %> <% end %> </tbody> </table> </div> <table> <tr> <td><%= f.label :comments %></td> <td><%= f.text_area(:comments, :cols => 30, :rows => 4) %></td> </tr> </table> <p> <%= f.submit 'Create'%> </p> <% end %> <%= link_to 'Back', education_plans_path %> <%= observe_field(:osis, :frequency => 0.25, :update => :student_info, :url =>{:controller => 'students', :action => :get_student_info}, :with => 'osis', :before => "Element.show('loading')", :complete => "Element.hide('loading')") %> ---------------------------- students_controller.rb ---------------------------- def get_student_info @student = Student.find_by_osis(params[:osis]) if @student.nil? render :text => 'Couldn\' find the student' elsif !...@student.education_plan.nil? render :text => 'Student already has an education plan.' else render :partial => true, :action => 'show' end end ---------------------------- students show view ---------------------------- <%=hidden_field_tag(:student_id, @student.id) %> <%=h @student.first_name + ' ' + @student.last_name %> ---------------------------- So, with my workaround it does what I want, but then all kinds of other problems are introduced i.e. error handling etc. I hope this illustrates better what I'm trying to do. Thanks! -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---