ruby - 使用自定义主 ID 在 rails3 中进行路由

标签 ruby routing ruby-on-rails-3

我有带有自定义主键的模型:

文档.rb

class Document < ActiveRecord::Base
  set_primary_key "token"
end

路线.rb:

MyApp::Application.routes.draw do
  resources :documents, :only => [:index, :show, :create]
end

当我创建新文档时,出现错误:

No route matches {:controller=>"documents", :id=>#<Document id: "b430cfe73aaa5235fbfe", token: "b430cfe73aaa...

当我切换到使用 :id 作为主键时,一切正常。但是我需要使用 token 。

我使用:rails 3.0.0 和 ruby​​ 1.8.7(2010-04-19 补丁级别 253)[i686-linux],MBARI 0x8770,Ruby 企业版 2010.02

感谢您的帮助。

最佳答案

尝试添加到document.rb

def to_param
 token
end

关于ruby - 使用自定义主 ID 在 rails3 中进行路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3768740/

相关文章:

c# - 路由的属性帮助,编译器错误

ruby-on-rails - 为什么我们应该避免在 Rails 中使用类变量@@?

ruby-on-rails - 如何在单选按钮标签中传递对象?

ruby-on-rails - rails 3.2 : Routing helpers in views break locally after other error

ruby-on-rails - Rails 如何为heroku 上的rake 任务创建后台任务?

ruby-on-rails - 冗余嵌套重复运算符

ruby-on-rails - 如何使用 Rails 和 Active Record 在单个列中找到紧密匹配项?

ruby - 要求 OS X Brew 库安装错误

ruby-on-rails - ruby 1.9.3p448 中的 bcrypt 安装错误

reactjs - 什么是识别我当前使用 react-router 4 的路线的更好方法