Я читал темы о маршрутах снова и снова, но ни одна из них не могла мне помочь.Итак, поскольку я все еще новичок в Ruby, моя попытка:
Я хочу, чтобы пользователи имели свои собственные проекты.Эти проекты должны иметь склады, клиентов и transquans.Я хочу, чтобы URL был похож на ~ / user / 1234 / project / 1 / warehouse / ..., так что предоставляется эксклюзивное использование.Вот так выглядит мой rout.rb:
resources :users do
resources :projects do
resources :transquans
resources :warehouses
resources :clients
end
end
Вот как я пытаюсь вызывать проекты из users / show.html.erb [уже пробовал разные варианты, которые все давали мне сообщения об ошибках]
<strong>Projects</strong> <%= link_to project_path(@user) %>
При попытке вызвать определенного пользователя я получаю сообщения типа
No route matches {:action=>"show", :controller=>"projects", :id=>#<User id: 64810937, name: "Tester 1", email....
То есть, хотя я создавал проекты с помощью скаффолдинга и никогда не касался действия "show" ...
Попытка выяснить, как исправить это, стоила мне нескольких дней, хотя я думаю, что решение не может быть таким сложным.
РЕДАКТИРОВАТЬ: Теперь я выполнил первые несколько шагов в работе Райана Бейтса. Screencast до 4:52 мин.Тем не менее, при нажатии http://localhost:3000/users/768773789/projects
я получаю еще одно сообщение об ошибке, которое я не понимаю, говоря
SQLite3::SQLException: no such column: projects.user_id: SELECT "projects".* FROM "projects" WHERE ("projects".user_id = 768773789)
, в то время как schema.rb выглядит так
create_table "clients", :force => true do |t|
t.string "name"
t.string "codename"
t.integer "demand"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "projects", :force => true do |t|
t.string "name"
t.datetime "created_at"
t.datetime "updated_at"
end
Все еще благодарен за любую помощь.Это сводит меня с ума.