Rails 构建函数包含 2 个对象
我有一个关于 Rails 3 中构建方法的问题。我想用项目和组的外键创建一个 Todo。
这些关联看起来像
Group has_many items 和 todos
Project has_many todos、belongs_to group
Todo owns_to 1 个项目和 1 个小组
My routes
resources :groups do
resources :projects do
resources :todos
end
end
工作完美。
该表单也可以完美地工作:
<%= form_for [@group, @project, @todo] do |f| %>
我现在的问题是 Todo-Controller 中的 CREATE 和 UPDATE 方法。
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 并将它们都保存到数据库中。
I have a problem concerning the build method in rails 3. I want to create a Todo with foreignkeys of project and group.
The associations look like
Group has_many projects and todos
Project has_many todos, belongs_to group
Todo belongs_to 1 project and 1 group
My routes
resources :groups do
resources :projects do
resources :todos
end
end
work perfect.
The form also works perfectly with:
<%= form_for [@group, @project, @todo] do |f| %>
My problem is now the CREATE and UPDATE Method in the 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
...
If I write:
@todo = @group.todos.build(params[:todo])
or
@todo = @project.todos.build(params[:todo])
the project_id OR group_id is saved in the database. But not with:
@todo = @group.projects.todos.build(params[:todo])
My question is now, how I can get access of the group_id and the project_id and save them both into the database.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
最后我找到了一个可行的解决方案:
Finally I found a working solution: