我有2个具有不同属性的模型类:
class User < ActiveRecord::Base
end
class Subuser < User
end
当我在控制器中调用'new'函数时:
def new
@subuser = Subuser.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @hosting }
end
end
并尝试使用Subuser模型(迁移)持有的视图访问数据:
<% form_for(@subuser) do |f| %>
<%= f.text_field :subname %>
<% end %>
我明白了:
#
的未定义方法`subname'但是,如果我将其更改为在用户模型/迁移下定义的其他单元格,则一切正常。
似乎有一些数据访问的问题。
我做错了什么?
感谢您的帮助!
我收到以下错误
答案 0 :(得分:0)
从发布的代码中,@hosting
仅为format=xml
定义,HTML视图不存在。
答案 1 :(得分:0)
@hosting变量应该是什么?迈克是对的,你没有在任何地方定义它。
我的猜测是你可能想要做更多的事情
form_for(@subuser) do |f|
答案 2 :(得分:0)
您确定在这里正确使用STI(单表继承)吗?用户表的架构是什么?您是说您有Subuser的迁移...因为如果您尝试使用STI,它应该使用带有users
列的type
表。
答案 3 :(得分:0)
您的子模型只知道通过它的父级给出的内容。因此,如果您尝试访问“虚构”属性,则会得到未定义的方法错误。
尝试添加attr_accessor :subname
为其提供该属性。
我对@hosting的事情也有点好奇......