Ten*_*ack 2 ruby-on-rails single-table-inheritance
我正在使用STI,我想知道,我是否必须为每个型号配备一个单独的控制器?我有一种情况,我只在STI关系中使用一个模型的创建和编辑操作,但如果我尝试为其执行表单,则会出现"未定义的方法"错误.更具体地说,我有两个继承自List的模型:
class RegularList < List
class OtherList < List
Run Code Online (Sandbox Code Playgroud)
我有一个处理这些操作的列表控制器,但我只使用表单创建带有RegularList的新模型.即我使用form_for创建新的List对象的唯一情况是使用RegularList.我想做的是:
class ListsController < ApplicationController
def new
@list = RegularList.new
end
Run Code Online (Sandbox Code Playgroud)
否则创建新列表的路径看起来像regular_list/new,但我希望它只是list/new.思考?
编辑:问题是当我使用上面的代码时,我得到一个'未定义的方法'错误.我的观点如下:
...所以在Lists控制器中使用RegularList对象似乎存在一些问题,这是我试图解决的主要问题.对不起,我意识到这不是最清楚的解释.
uns*_*ted 11
我知道这有点晚了,但也许这会对其他人有所帮助.您想要使用该becomes方法.假设您正在编辑@list哪个是实例RegularList.然后做
form_for @list.becomes(List)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1063 次 |
| 最近记录: |