所以這只是讓我瘋狂!我瀏覽了大量的帖子,無法讓我的應用程序工作..我希望SO社區可以。沒有方法錯誤 - 類的未定義方法
所以,我有一個RoR應用程序,我可以創建一個新事件。
當我到localhost:3000/events和localhost:3000/events/new都加載正確,看起來不錯。這是問題。當我在本地主機提交的事件:3000 /事件/新形式的信息添加到數據庫中,但我得到了以下錯誤:
未定義的方法`event_path」爲#<#:0x00000100a15800>
下面是一些(希望)相對碼位:
視圖/活動/ 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"%>
<%端%>
個控制器/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
配置/ routes.rb中(僅相關部分)
resources :events, :only => [:index, :new, :create, :edit]
真的很棒eciate可以提供任何幫助......我是Ruby on Rails的新手,所以我只是想把這件事情弄清楚。
謝謝!
凱文
感謝您的幫助......我將其更改爲只有 資源:活動 但現在,當我創建活動時,它只停留在/ events/new頁面上。我如何讓它重定向到/ events頁面? 謝謝! –
在你的創建方法中,你可以根據你的意願使用redirect_to @event重定向到事件顯示頁面或任何其他頁面(redirect:action =>:index),並在else子句中使用render:new來顯示新頁面,如果表格中有任何錯誤。 – felix