2015-09-20 2 views
-1

Я пытаюсь создать форму, которая будет размещаться в базе данных, я действительно боюсь в данный момент, и я получаю эту ошибку.ошибка имени неинициализированный постоянный путь в рельсах

NameError in AddController#index 
uninitialized constant AddController::Newevents 

Не могли бы вы посоветовать, что мне нужно будет сделать?

Heres весь код у меня есть

Форма

<%= 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 

Редактировать

я теперь эту ошибку undefined method newevents_path'` после изменения этого

@newevents = Newevent.new 

ответ

1

кажется, что вы неверно скопированные ваш код здесь. Сообщение об ошибке указывает на то, что ваш индексный метод на самом деле выглядит это

def index 
    @newevent = Newevents.new 
end 

Снимите s с конца Newevent и он должен работать.

RE: ваша правка

Ваши маршруты заявляют, что у вас есть ресурс с именем add, если вы хотите, чтобы показать и создавать свои Newevent объектов, то вы должны создать контроллер для этого. Объявите resources :newevents в своих маршрутах и ​​создайте контроллер для его обработки.

Вы должны исследовать маршруты RESTful, потому что это то, с чем лучше всего работает маршрутизация Rails resource. Форма для создания нового объекта должна отображаться действием new, а не index.

+0

если я удалить с, из него я получаю эту ошибку, 'неопределенный метод' newevents_path»для # <# <Класс: 0x007fd138342068>: 0x007fd1383415f0>' – Tester123

-1

Вы используете метод create вместо index, если используете метод POST http. index будет вызываться, если вы используете метод GET, и его нельзя использовать для публикации данных формы. Обратитесь к этому link за дополнительной информацией о маршрутизации рельсов.

class AddController < ApplicationController 
    def create 
    @newevent = Newevent.new 
    end 
end 
Смежные вопросы