Search code examples
ruby-on-railsformsruby-on-rails-4associationsmodel-associations

Rails Form Associations - Passing id From Previous Page


Trying to figure our how to set up associations in form.

I have 3 models:

class Request < ActiveRecord::Base
  has many :answers
  has many :users, through: :answers
end

class Answer < ActiveRecord::Base
   belongs to :user
   belongs to :request
end

class User < ActiveRecord::Base
   has many :answers
   has many :requests, through: :answers
end

I am trying to figure out: how to have a User link to Answer#new from Request#Show, and then create an Answer record passing in the Request#Show request_id from the previous page - creating an association between the User's Answer and the Request he was viewing.

My method of doing this now is: I flash the request_id value on Request#Show, and then when a User links to Answer#new, it passes the flashed value into a hidden form tag on Answer#new. This does not seem like the best way to do this.

Any thoughts?


Solution

  • Kudos for the creative approach using flash, however your right there is an easy way. You can pass parameters much between controllers just like passing parameters between methods using the route names.

    I didn't quite follow what it was you were trying to achieve in this case but it looks like this blog entry here should get you started..

    https://agilewarrior.wordpress.com/2013/08/31/how-to-pass-parameters-as-part-of-the-url-in-rails/

    Good luck!