没有方法错误 - 类的未定义方法

时间:2011-07-05 06:20:30

标签: ruby-on-rails ruby-on-rails-3 methods controllers

所以这让我疯了!我查看了很多帖子,并且无法使我的应用程序正常运行..我希望SO社区可以。

所以,我有一个RoR应用程序,我可以在其中创建一个新事件。

当我去localhost时:3000 / events和localhost:3000 / events / new都正确加载并且看起来很棒。这是问题所在。当我在localhost:3000 / events / new上提交事件时,表单信息被添加到数据库中,但是我收到以下错误:

#<#:0x00000100a15800>

的未定义方法`event_path'

以下是一些(希望)相对代码位:

视图/活动/ 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"%>

&lt;%end%&gt;

控制器/ 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

模型/ 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 / routes.rb (仅限相关部分)

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

真的很感激可以提供的任何帮助......我是Ruby on Rails的新手,所以我只想弄清楚这一切。

谢谢!

凯文

1 个答案:

答案 0 :(得分:1)

创建或更新方法后,您将重定向到@event,这将重定向到您的活动的展示页面。您尚未使用:only子句为show,update,destroy页面生成路由。您可以通过在控制台上运行rake routes来验证这一点。删除:only clause,它会起作用。