Ошибка метода - неопределенный метод для класса - PullRequest
0 голосов
/ 05 июля 2011

Так что это просто сводит меня с ума!Я просмотрел множество постов и не могу заставить свое приложение работать ... Я надеюсь, что SO-сообщество сможет.

Итак, у меня есть приложение RoR, где я могу создать новое событие.

Когда я захожу на localhost: 3000 / events и localhost: 3000 / events / new, оба загружаются правильно и выглядят великолепно.Здесь проблема.Когда я отправляю событие на localhost: 3000 / events / new, информация о форме добавляется в базу данных, но я получаю следующую ошибку:

неопределенный метод `event_path 'для # <#: 0x00000100a15800>

Вот некоторые (надеюсь) относительные биты кода:

views / events / create.html.erb

<%= simple_form_for(@event) do |f| %>
<%= f.input :name %>
<%= f.input :date %>
<%= f.input :location %>
<%= f.input :organization %>
<%= f.input :description %>
<%= f.submit "Create Event"%>

<% end%>

controllers / events_controller.rb

class EventsController < ApplicationController
respond_to :html

  def index
    @all_events = Event.all
  end

  def show
      @event = Event.find_by_name(params[:id])
  end

  def new
    respond_with(@event = Event.new)
  end

  def edit
    @event = Event.find_by_name(params[:id])
  end

  def create
    @event = Event.create(params[:event])
    if @event.valid?
        flash[:notice] = "Event successfully created"
    end
   end

  def update
@event = Event.find_by_name(params[:id])
@event.update_attributes(params[:event])
if @event.valid?
    flash[:notice] = "Event successfully updated"
end
respond_with(@event)
  end

  def destroy
    @event = Event.find_by_name(params[:id])
    if @event.destroy
        flash[:notice] = "Event successfully deleted"
    end
    respond_with(@event)
  end
end

models / event.rb

   class Event < ActiveRecord::Base
    validates_presence_of :name
    has_and_belongs_to_many :organizations

    attr_accessible :name, :date, :location, :organization, :description
    attr_accessor :organizations

    end

config /rout.rb (только соответствующая часть)

resources :events, :only => [:index, :new, :create, :edit]

Очень ценю любую помощь, которая может быть оказана ... Я новичок в Ruby on Rails, поэтому я просто пытаюсь разобраться во всем этом,

Спасибо!

Кевин

1 Ответ

1 голос
/ 05 июля 2011

После создания или обновления методов вы перенаправляете на @event, который будет перенаправлять на страницу показа вашего события. Вы не сгенерировали маршрут для показа, обновления, уничтожения страниц, используя предложение :only. Вы можете проверить это, запустив rake routes на своей консоли. Удалите :only clause, и это будет работать.

...