2013-06-05 45 views
0

我只是在構建我的應用程序的開始階段 - 這裏沒有太嚴重。它在我的本地環境中工作正常,但似乎在heroku上崩潰。未定義的方法'model_name'爲NilClass:在Heroku上的子類的類錯誤

的代碼是像這樣:

我在設計一個用戶模型。 我有2個子類下的用戶,作者和讀者。

添加一個讀者的形式看起來像這樣:

<%= form_for(@reader, :url => user_registration_path) do |f| %> 

    <div><%= f.label :email %><br /> 
    <%= f.email_field :email, :autofocus => true %></div> 

    <div><%= f.label :password %><br /> 
    <%= f.password_field :password %></div> 

    <div><%= f.label :password_confirmation %><br /> 
    <%= f.password_field :password_confirmation %></div> 

    <div><%= f.label :name %><br /> 
    <%= f.text_field :name %></div> 

    <div><%= f.label :zipcode %><br /> 
    <%= f.text_field :zipcode %></div> 

    <div><%= f.submit "Sign up" %></div> 
<% end %> 

該控制器具有:

def index 
    @reader = Reader.new 
    end 

和模型很簡單:

Class Reader < User 
end 

雖然我沒有試圖創建一個新的用戶使用該表單,我沒有得到任何錯誤加載我的本地環境中的頁面。然而在heroku上,我得到undefined method 'model_name' for NilClass:Class

我耙過數據庫,並重新啓動服務器沒有運氣。

任何想法?

+0

難道你不覺得用'user_registration_path'作爲'reader'模型表單的動作是錯誤的嗎? – fotanus

+0

要放棄顯而易見的第一項:index.html.erb中的表單是什麼?它看起來像@reader沒有設置。 – Ghar

+0

@fotanus,原來是的 - 但它將生活在用戶表中,並沒有給我任何本地的錯誤。所以我不明白爲什麼這是Heroku上的問題。 – Elliot

回答

0

我看起來像@reader沒有設置。 表單不在index.html.erb中。 它必須是新的和編輯操作使用的partial _form.html.erb。所以你必須在閱讀器控制器中的這些操作中設置@reader

相關問題