【发布时间】:2011-01-22 21:22:04
【问题描述】:
我正在开发一个与状态机非常相似的应用程序。
创建“人”后,有一些属性为空,必须通过“更新”操作来填充。
我在我的模型中定义了一个“unique_token”函数,因此在创建和更新人员时,会分配一个新的唯一字符串。
后来,我在路由中为“编辑”和“更新”操作定义了“/:unique_token”。
后来,在我的控制器中,对于“编辑”和“更新”,我定义了:
@person = Person.find_by_unique_token(params[:unique_token])
但是!
我收到错误消息,因为更新操作仍在尝试查找 ID。
我应该如何覆盖它?
有更好的方法吗?
谢谢。
【问题讨论】:
-
你能解释一下
I get an error because the update action still tries to find an ID.“试图找到”的确切含义吗?如何?身份证和个人身份证一样吗? -
是的。更新调用仍然尝试查找控制器“person”、操作“update”和 id“params[:id]”。但我不需要该属性,所以它失败了。
-
当你用'where'找到它时会发生什么?这个向导 tut 是另一种方法:railscasts.com/episodes/217-multistep-forms
标签: ruby-on-rails url routes state-machine