模型类继承(视图问题)

时间:2009-11-05 18:51:59

标签: ruby-on-rails ruby

我有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'

但是,如果我将其更改为在用户模型/迁移下定义的其他单元格,则一切正常。

似乎有一些数据访问的问题。

我做错了什么?

感谢您的帮助!

我收到以下错误

4 个答案:

答案 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的事情也有点好奇......