#ruby-on-rails #ruby #ruby-on-rails-3 #routes
#ruby-на-рельсах #рубиновый #ruby-on-rails-3 #маршруты
Вопрос:
Моделируйте отношения:
class Project < ActiveRecord::Base
...
has_one :project_team
...
end
class ProjectTeam < ActiveRecord::Base
belongs_to :project
end
Контроллер:
class Project::TeamController < ApplicationController
...
end
Маршруты:
resources :projects do
namespace :project do
resources :team
end
end
Код формы:
= form_for @project do |f|
Когда я захожу в новую форму проекта, я получаю следующую ошибку:
No route matches {:controller=>"project/team", :project_id=>#<Project id: nil, user_id: 1 ...
Я перепробовал много вариантов этого:
= form_for [:project, :team, @project] do |f|
Но Безрезультатно. Маршруты едва обозначены. Но я работаю над новой формой проекта, поэтому мне интересно, почему он все равно пытается привлечь к этому проектную команду.
Спасибо за помощь! [:
Ответ №1:
Здесь мы должны использовать вложенные ресурсы,
resources :projects do
resource :project_team
end
Комментарии:
1. Ну, из-за того, что контроллер вложен, это не сработает. Она вложена в папку проекта следующим образом: class Project::TeamController < ApplicationController Изменил сообщение справки, чтобы отразить это.
Ответ №2:
Я не уверен в проблеме, но чтобы исправить это, я просто увеличил число имен моего контроллера.