Forum: Ruby on Rails db setup,active record

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
0054cd2ea72e1b5219aa26f94f494c2e?d=identicon&s=25 los x. (los_x)
on 2012-07-29 01:08
my app has user, photo, and state models.
a user belongs to a state and thusly has a state_id field,
a user has many photos.
I have the photos view set up as the home page.
I am trying to set up a select tag and form tag to filter through the
photos by which state is selected.
My files are:

view

  <%= form_tag photos_path, :method => 'get' do%>

          <%= select("state", "name", State.all.collect(&:name)) %>
    <%= submit_tag "State" %>
  <% end %>



controller

  if (params[:state] )
        statesmen = State.find_by_name(params[:state][:name]).users
        statesmen.each do |person|
          @photos = @photos <<  Photo.where(:user_id => person.id)
        end
  else .....

My questions are 1
Is there a better way to collect the photos?  Theres gotta be.  Should I
just give the photo a state_id field?

and 2
Why can't I do it this way
81b61875e41eaa58887543635d556fca?d=identicon&s=25 Frederick Cheung (Guest)
on 2012-07-29 11:10
(Received via mailing list)
On Sunday, July 29, 2012 12:08:09 AM UTC+1, Ruby-Forum.com User wrote:
>
>   if (params[:state] )
>
If you added a has_many :photos, :through => :users associations to
State
then you should be able to do state.photos


> and 2
> Why can't I do it this way
>
> Well you haven't said what's not working, but at a guess it's because
you're just assigning to @photos again and again rather than addinging
the
individuals results together

Fred
This topic is locked and can not be replied to.