2011-11-29 69 views
0
當我訪問

‘公司/新’,然後我得到了以下錯誤:「未定義的方法`companies_path」錯誤

undefined method `companies_path' 
Extracted source (around line #1): 
1: <%= form_for(@company) do |f| %> 

但是,當我訪問‘公司/ 1 /編輯’(使用相同形式)一切正常。 這是「新」和「編輯」的公司負責人:

def new 
    @company = Company.new 
end 
def edit 
    @company = Company.find(params[:id]) 
end 

這是(的一部分)的形式:

<%= form_for(@company) do |f| %> 
<!-- Show errors --> 
<%= render('layouts/form_errors', :object => @company) %> 

我真的不明白的錯誤消息,因爲'companies_path'沒有被用在代碼中?

更新:這裏是routes.rb中:

get "users_dashboard/show" 
    get "login" => "sessions#new", :as => "login" 
    get "logout" => "sessions#destroy", :as => "logout" 

    resources :company 
    resources :relations 
    resources :activities 
    resources :contacts 
    resources :notes 
    resources :tasks 
    resources :users 
    resources :sessions 

    get "site/index" 
    get "site/features" 
    get "site/dashboard" 

    root :to => 'users_dashboard#show' 

這裏是公司的模式:

class Company < ActiveRecord::Base 
has_many :users 
has_many :relations 
has_many :contacts, :through => :relations 
has_many :notes, :through => :contacts 
has_many :tasks, :through => :contacts 
has_one :subscription 

accepts_nested_attributes_for :subscription 

attr_accessible :name, :address1, :address2, :zipcode, :city, :country, :email,  :website, :telephone, :twitter, :linkedin, :code 

validates  :name, :address1, :zipcode, :city, :country, :code, presence: true 
validates_length_of :code, :maximum => 3 

+0

請發表您的config/routes.rb文件 – lucapette

+0

routes.rb中添加 – John

+0

模型公司加入 – John

回答

2

你應該改變

resources :company 

resources :companies 
+0

然後,它提供了一個「未初始化的常量CompaniesController」的錯誤。然後,爲什麼表單要處理一個編輯而不是一個新的,同時要求相同的_form部分? – John

+0

這是正確的。出於某些原因,您不會遵循Rails約定來處理restful資源。編輯工作,因爲按照慣例,它有單一和複數資源相同的路線。有關更多信息,請參閱http://guides.rubyonrails.org/routing.html#crud-verbs-and-actions。你是如何創建公司模型的? – lucapette

+0

公司模式應該非常簡單。看來控制器正在調用它不應該做的複數。 – John