joining sqlite tables?

Hi list,

I know a similar question has been posted recently, but I am having

real trouble relating it to my example.

I have managed to create a nested form that allows users to enter

data about Universities and resources on the same page. I want to be able to show corresponding Uni and resource data in my view, but am running in to a few problems.

I'm not sure if this fact impacts, but resources and universities

have their own controllers and models. I simply added a bit of code to my unibersities controller and _form to render the resource and uni fields on the same page.

I have created a foreign key in the 'resource' table, as one

university can have many resources. When trying to display the universities/show.html.erb page I get the following error.

ActiveRecord::StatementInvalid in Universities#show

Showing /home/resource_portal/website/app/views/universities/show.html.erb where line #17 raised:

SQLite3::SQLException: no such column: resources.university_id: SELECT "resources".* FROM "resources" WHERE ("resources".university_id = 7)

Extracted source (around line #17):

14: <b>Country:</b>
15: <%= @university.country %>
16: <b> resources</b>
17: <%= join_resources(@university) %>
18: </p>
19: 20:

`

  `

Rails.root: /home/resource_portal/website

I thought the foreign key I added to the 'resource' table would have

created the resources.university_id column, but I guess not.

Do I need to create some sort of new table or column? Apologies but

my DB knowledge is pretty rusty.

For reference here is the method in my helper:

def join_resources(university)

    university.resources.map { |r| r.name }.join(", ")

  end

end

Any help would be great.

Thanks in advance,

Jen!

Hi list,

I know a similar question has been posted recently, but I am having

real trouble relating it to my example.

I have managed to create a nested form that allows users to enter

data about Universities and resources on the same page. I want to be able to show corresponding Uni and resource data in my view, but am running in to a few problems.

I'm not sure if this fact impacts, but resources and universities

have their own controllers and models. I simply added a bit of code to my unibersities controller and _form to render the resource and uni fields on the same page.

I have created a foreign key in the 'resource' table, as one

university can have many resources. When trying to display the universities/show.html.erb page I get the following error.

ActiveRecord::StatementInvalid in Universities#show

Showing /home/resource_portal/website/app/views/universities/show.html.erb where line #17 raised:

SQLite3::SQLException: no such column: resources.university_id: SELECT "resources".* FROM "resources" WHERE ("resources".university_id = 7)

Extracted source (around line #17):

14: <b>Country:</b>
15: <%= @university.country %>
16: <b> resources</b>
17: <%= join_resources(@university) %>
18: </p>
19: 20:

`

  `

Rails.root: /home/resource_portal/website

I thought the foreign key I added to the 'resource' table would have

created the resources.university_id column, but I guess not.

Did you run: rake db:migrate (after creating the migration that creates this column)?

I’m assuming you added the foreign key by creating a new migration that adds a column to resources (as opposed to modifying existing migration files).

Do I need to create some sort of new table or column? Apologies but

my DB knowledge is pretty rusty.

You’re on the right track. You just haven’t succeeded in creating the foreign key column in your database. Either your migration is broken (it creates a column w/a wrong name), or wasn’t run (you didnt’ run rake db:migrate) or is in the wrong place (you edited an existing migration so that even though you ran rake db:migrate, nothing happened).

For reference here is the method in my helper:



def join_resources(university)

    university.resources.map { |r| [r.name](http://r.name) }.join(", ")

  end

end

This is fine.