问题描述:
我有一个中间表 X 将表 A 中的元素映射到表 B 中的元素。
该表 X 还包含许多关于此映射属性的列。表 X 中记录的唯一性不仅是 id od A 和 id od B,而且是表示映射的唯一标识符。
在尝试更新表 X 的属性时,我添加到路由:
map.A :only=>[:none] do |a|
a.resources B :controller=>X :only[:update]
end
map.resources x :only=>[:update]
所以这基本上给了我可能的 url 来访问我的 X 控制器的更新方法。
问题:
我的问题是:如何通过传递 A 和 B 或仅传递 X 标识符来判断何时访问控制器?我知道查看参数我可以检查 A 是否存在,如果不存在,那么它必须是 X,但这不是很实用/安全。如果它变得更复杂,我将需要多个 if 来检测确切的情况。
更糟糕的是,想象一下由于某种原因我有另一条路线,例如:
map.resources Y :controller=>X :only[:update]
然后在我的参数哈希中,我将只有 :id 所以,如果条件甚至不起作用......
注释:
我希望有一个:key
路由选项,这样您就可以重命名参数哈希中的键,但是从我在 Rails 2 中读到的内容来看,没有这样的事情,如果可能的话,我想避免使用插件。没有比 if 案例或解析 url 来告诉传递哪些参数以便我可以查找我的数据库更好的方法吗?
谢谢!!!