The original code didn't work because Barney was generating an ActiveRecord Relation. The .find almost worked, except he wanted to embed Ruby code in a SQL statement. This should do it:
PeopleSkill.where("people_id = #{@person.id}").find In the future, I think something like Andrew's suggestion would be a lot more readable and maintainable--I.E. using ActiveRecord to convert your database information into objects, and looking for your information among the objects instead of at the database level. On Tue, Jul 19, 2011 at 5:17 PM, Andrew Skegg <andrewsk...@me.com> wrote: > Barney <bsperlin@...> writes: > > > > > Thanks Andrew, but I couldn't make the 'find' work on the > > 'PeopleSkill.where...' line. When I used 'find' on the @people_skill > > line it came very close (since in the controller, listed above, > > people_skill was already choosing the field 'skill'), so when I used: > > <%= @people_skill.find(@person.id) > > and skipped the next line listed above, the SQLException was > > SQLite3::SQLException: near ".": syntax error: SELECT skill FROM > > "people_skills" WHERE "people_skills"."id" = 23 AND (:people_id = > > @person.id) LIMIT 1 > > which is VERY close to what I want, except that I want > > "people_skills"."people_id"=23, not "people_skill"."id"=23. I know > > that 'find' always looks for the 'id' so I've got to get a different > > variation. > > What changes should I make? > > Thanks again, > > Barney > > What if we flip the logic? > > Assuming your models look something like: > > Person < ActiveRecord::Base > has_and_belongs_to_many :skills > end > > Skill < ActiveRecord::Base > has_and_belongs_to_many :people > end > > With the appropriate PeopleSkills join table in the database. > > Then: > > @person = Person.find(params[:id]) > @people_skill = @person.skills > > Or more easily: > > def show > @person = Person.find(params[:id]) > end > > and the view becomes: > > <p> > <b>Skills</b> > <%= @people.skills > > </p> > > or similar. > > > > > > -- > 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. > > -- 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.