男孩这看起来像小菜一碟,但我找不到routing bible -
有没有办法在不使用'match / post /:pid'的情况下将默认参数':id'更改为':pid'之类的其他内容?我想避免使用'匹配',因为它感觉特别脆。
编辑要确认,只有我能做到这一点才会成功:
pid = params[:pid]
这样做的:
pid = params[:id]
已经有效,但代码错误,因为它不是那里的id。
答案 0 :(得分:3)
如果我说得对,请查看:
http://railscasts.com/episodes/63-model-name-in-url
基本上你应该覆盖模型中的to_param
方法:
def to_param
pid
end
当您想要获取对象时,请在控制器中执行此操作:
@object= Object.find_by_pid(params[:id])
祝你好运!
答案 1 :(得分:0)
您可以在模型中定义to_param
方法:
def to_param
pid
end
然后,您生成的所有链接等都将使用pid
代替id
。在您的控制器中,params[:id]
实际上会为您提供pid
,而非id
。