【发布时间】:2015-02-12 20:46:29
【问题描述】:
我正在从一个简单的自定义模型(不是 ActiveRecord,普通 ActiveModel)渲染一个页面,我无法让 url/path 助手生成一个带有其 id 的 url,如下所示:
person_path(model)
# I want: /person/3
# I get: /person
是否有任何具体的类我必须继承或实现,以便 url 帮助程序与我的自定义模型一起使用?
我听说过to_param,但它不起作用,至少不是这样:
class Person
include ActiveModel::Model
def id
3
end
def to_param
id.to_s
end
end
根据the documentation 应该可以:
任何包含 ActiveModel::Model 的类都可以与 form_for 一起使用, render 和任何其他 Action View 辅助方法,就像 Active 记录对象。
但我想 url 帮助程序仍然需要一个缺失的函数来工作
【问题讨论】:
-
定义
to_param应该可以工作。您是如何尝试实现该方法的? -
不,这就是我在问题中提到的。但我刚刚添加了一个小样本,说明我期望
to_param的工作方式 -
代码正确,应该可以。请检查您的
routes.rb文件中是否有resources :people- 我复制了您发布的确切型号代码,person_path(Person.new)得到我/people/3,而不仅仅是'/people'
标签: ruby-on-rails ruby