【发布时间】:2011-02-18 23:23:03
【问题描述】:
我正在为我的应用创建一个报告系统。 例如,我创建了一个模型 ReportKind,但是因为我可以报告很多东西,所以我想制作不同的报告类型组。由于他们有很多共同的行为,我正在尝试使用继承。
所以我有主模型:
model ReportKind << ActiveRecord::Base
end
并创建例如:
model UserReportKind << ReportKind
end
在我的表 report_kinds 中,我有类型列,直到这里它都可以正常工作。 我的问题出在表单/控制器中。
当我执行ReportKind.new 时,我的表单是使用“*report_kind*”前缀构建的。
如果获得UserReportKind,即使通过ReportKind.find,表单也会构建“user_report_kind”前缀。
这弄乱了控制器中的所有内容,因为有时我会有 params[:report_kind],有时还有 params[:user_report_kind],等等我创建的所有其他继承。
有没有强制它使用'report_kind'前缀? 另外我不得不在控制器中强制属性“类型”,因为它没有直接从表单中获取值,有没有一种很好的方法来做到这一点?
路由是另一个问题,因为它试图根据继承的模型名称构建路由。我通过在指向同一个控制器的路由中添加其他模型来克服这个问题。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 forms inheritance activerecord