更改自:Rails 3路由中的URL中的ID

时间:2011-04-11 15:55:52

标签: ruby-on-rails routing

男孩这看起来像小菜一碟,但我找不到routing bible -

有没有办法在不使用'match / post /:pid'的情况下将默认参数':id'更改为':pid'之类的其他内容?我想避免使用'匹配',因为它感觉特别脆。

编辑要确认,只有我能做到这一点才会成功:

pid = params[:pid]

这样做的:

pid = params[:id]

已经有效,但代码错误,因为它不是那里的id。

2 个答案:

答案 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