2015-11-01 170 views
0

海蘭傢伙...我正在學習的Ruby on軌道,但我不知道什麼這個頁面上怎麼回事,這是我的錯誤:Ruby on Rails的 - NoMethodError

NoMethodError in Contacts#new Showing /home/ubuntu/workspace/simplecodecasts_saas/app/views/contacts/new.html.erb where line #7 raised: undefined method `name' for #

這是我的新。 html.erb

<div class="row"> 
    <div class="col-md-4 col-md-offset-4"> 
    <div class="well"> 
     <%= form_for @contact do |f| %> 
     <div class="form-group"> 
      <%= f.label :name %> 
      <%= f.text_field :name, class: 'form-control' %> 
     </div> 
     <div class="form-group"> 
      <%= f.label :email %> 
      <%= f.email_field :email, class: 'form-control' %> 
     </div> 
     <div class="form-group"> 
      <%= f.label :comments %> 
      <%= f.text_area :comments, class: 'form-control' %> 
     </div> 
     <%= f.submit 'Submit', class: 'btn btn-default' %> 
     <% end %> 
    </div> 
    </div> 
</div> 

這是我的路線

Rails.application.routes.draw do 
    resources :contacts 
    get '/about' => 'pages#about' 
    root 'pages#home' 

和我contacts_controller.rb

class ContactsController < ApplicationController 

    def new 
    @contact = Contact.new 
    end 

    def create 
    end 

end 

怎麼回事?

完全錯誤的屏幕 screen

+1

這意味着您的「聯繫人」表在數據庫中沒有列'名稱'。 – Prashant4224

+0

它是我的聯繫人表 – mrkmn

+0

它是我的聯繫人表類CreateContacts mrkmn

回答

0

這意味着你的contact記錄沒有任何name屬性,原因是你沒有在你的分貝。

要解決它,只需運行rake db:migrate ...或者,如果您尚未創建遷移的是,你應該遵循以下步驟:

$ rails g migration AddAttrsToContacts 

#db/migrate/add_attrs_to_contacts____.rb 
class AddAttrsToContacts < ActiveRecord::Migration 
    def change 
     add_column :contacts, :name, :string 
     add_column :contacts, :email, :string 
     add_column :contacts, :comments, :text 
    end 
end 

$ rake db:migrate 

這將填充相應列的表格,並應解決錯誤。

+0

是的,你是對的!非常感謝! – mrkmn

1

根據您的圖像的誤差存在接觸,請重新運行遷移或增加這些領域沒有name場。

#< contacts id: nil> 

意味着接觸只有ID所以我猜你沒有被添加來看,這種遷移,不會調用數據庫之後,這些領域!

請爲這些字段重新創建遷移並將它們從原始文件中刪除,所有應該都可以。

在運行它之後永遠不會將其添加到遷移文件中,從頭開始部署此應用程序時可能會導致嚴重問題。

+0

我嘗試,現在感謝 – mrkmn

相關問題