2015-09-20 63 views
-1

我試圖做一個表單,將張貼到數據庫,我真的在這一刻掙扎,我得到這個錯誤。名稱錯誤在軌道上的未初始化的常量路徑

NameError in AddController#index 
uninitialized constant AddController::Newevents 

您能否告知我需要做什麼?

赫雷什所有代碼我有

表格

<%= simple_form_for(@newevent) do |f| %> 
<%= f.input :eventname, required: true %> 
<%= f.input :eventdate %> 
<%= f.input :eventimage %> 
<%= f.button :submit %> 
<% end %> 

控制器

class AddController < ApplicationController 
    def index 
    @newevent = Newevent.new 
    end 
end 

模型

class Newevent < ActiveRecord::Base 
    def event_params 
     params.require(:Newevent).permit(:eventname, :eventdate, :eventimage) 
    end 
end 

路線

resources :add 

編輯

我現在改變這個

@newevents = Newevent.new 

回答

1

看來你miscopied你的代碼後,在這裏有這個錯誤undefined method newevents_path'`。該錯誤消息表明您的索引方法實際上是這樣的

def index 
    @newevent = Newevents.new 
end 

Newevent的末尾刪除s,它應該工作。

RE:你的編輯

你的路由聲明,您有一個名爲add資源,如果你想顯示和創建Newevent對象,那麼你應該創建一個控制器。在您的路線中聲明resources :newevents並創建一個控制器來處理它。

您應該研究RESTful路由,因爲這就是Rails的resource路由最適合的。應通過new操作而不是index來顯示創建新對象的表單。

+0

如果我從中取出S,I得到這個錯誤,'未定義的方法'newevents_path」爲#<#<類別:0x007fd138342068>:0x007fd1383415f0>' – Tester123

-1

如果您使用POST http方法,則應該使用create方法而不是index。如果您使用GET方法,則將調用index,並且它不應該用於發佈表單數據。請參閱此link以獲取有關軌道佈線的更多信息。

class AddController < ApplicationController 
    def create 
    @newevent = Newevent.new 
    end 
end 
相關問題