Функция сборки Rails с 2 объектами - PullRequest
0 голосов
/ 03 января 2011

У меня проблема с методом сборки в rails 3. Я хочу создать Todo с внешними ключами проекта и группы.

Ассоциации выглядят как

Группа has_many проектов и задач

Проект имеет много задач, принадлежит к группе

Todo принадлежит_1 проекту и 1 группе

My routes
resources :groups do
        resources :projects do
            resources :todos
        end
end

отлично работает.

Форма также отлично работает с:

<%= form_for [@group, @project, @todo] do |f| %>

Теперь моя проблема - метод CREATE и UPDATE в Todo-Controller.

   def create
        @group   = Group.find(params[:group_id])
        @project = Project.find(params[:project_id])
        @todo = @group.projects.todos.build(params[:todo])
        @todo.save
   ... 

Если я напишу:

@todo = @group.todos.build(params[:todo]) 

или @todo = @ project.todos.build (params [: todo])

project_id ИЛИ group_id сохраняется в базе данных. Но не с:

@todo = @group.projects.todos.build(params[:todo])

Теперь у меня вопрос, как мне получить доступ к group_id и project_id и сохранить их оба в базе данных.

1 Ответ

1 голос
/ 03 января 2011

Наконец-то я нашел рабочее решение:

    @group  = Group.find(params[:group_id])
    @todo   = @group.todos.build(params[:todo])    
    @todo.project = Project.find(params[:project_id])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...