Nested Resources for multi-belongs_to

这样一个模型关系,暂把它定义成multi-belongs_to:
Project has_many :tasks
User has_many :tasks
Task belongs_to :project, :user


想用Rails1.2的Nested Resources实现效果
projects/1/tasks
users/1/tasks

但似乎Task资源只能嵌套在一个父资源里面,routes设置:
map.resources :projects do |project|
project.resources :tasks
end

这样的话,只能做到这样:
tasks_url(1)  # => /projects/1/tasks

tasks_url不能再解析成另一个url出来。


花了点儿时间,找出来这种做法:
map.resources :users do |user|
user.resources :tasks, :name_prefix => "user_"
end

map.resources :projects do |project|
project.resources :tasks, :name_prefix => "project_"
end

[color=red]特别需要注意的是以上代码应该放在routes.rb设置的开头,否则会碰到"Unknown Action n"的Exception。因为routing设置是有优先级的。[/color]

就可以实现我要的东西了:

project_tasks_url(1) # => /projects/1/tasks
user_tasks_url(1) # => /users/1/tasks
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值