On Feb 19, 8:16 pm, John Merlino <li...@ruby-forum.com> wrote: > Hey all, > > Let's say you are not going to use an html form. Rather the user will > input data in a third-party application that will communicate with the > rails controller through http requests, but serves as a replacement to > the html. In other words, it's taking the place of front end. > > My question is can you update the attributes of another table, let's say > studentfails table, from let's say a students controller (which has a > students table) based on user input (the user input needs to be inserted > in the studentfails table). > > I was hoping something like this, but this doesn't work: > > student.rb > has_one :student_fail > attr_accessor :student_fail_attribute > > def find_failing_student > @student = @student.find params[:id] > end > def update_failing_student > @student = @student.find params[:id] > @student.build_student_fail params[:student][:student_fail_attribute] > end
You don't appear to be *saving* the result from @student.build_student_fail. Either you're looking for create_student_fail (which saves the record) or something like: def update_failing_student @student = Student.find(params[:id]) @student_fail = @student.build_student_fail(params[:student] [:student_fail_attribute]) if @student_fail.save # save succeeded else # save failed - re-render form with errors end end > Even for this you have to put student_fail_attribute in the html. I'm > hoping there's a way where you don't have to put anything in the html. Not sure what you're looking for here: it's going to be hard to get a field from the user without asking for it... --Matt Jones -- 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-t...@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.