1

次のエラーが発生します

No route matches [POST] "/events"

この設定では:

config / routers.rb

namespace :admin do
  #...
  resources :events
  #...
end

(...)admin / events_controller.rb

class Admin::EventsController < Admin::AdminController
  def index
    @events = Event.all
  end

  def new
    @event = Event.new
  end

  def create
    @event = Event.new(params[:event])

    if @event.save
      redirect_to [:admin, admin_events_url]
    else
      render :action => "new"
    end
  end

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

(...)admin / events / _form.html.erb

<%= form_for([:admin, @event]) do |f| %>

何が間違っているのかわからない!

アップデート

新しいイベントエントリの作成中にデータからPOSTしようとすると、このエラーが発生します


アップデート2

内部のオープニングフォームタグevents/new

<form accept-charset="UTF-8" action="/admin/events" enctype="multipart/form-data" id="new_event" method="post">

の結果rake routes

 admin_events GET    /admin/events(.:format)             admin/events#index
              POST   /admin/events(.:format)             admin/events#create

/admin/events/使用へのナビゲートは問題なくGET機能します。


アップデート3

これは、Ruby 1.9.3、Rails 3.2、およびMongrelを搭載したWindows8x64ビットで正常に動作します。Linuxサーバー(ホスト)上のRuby 1.8.7、Rails 3.2、PhusionPassengerでは動作しません。

アップデート4

おー。multipart/form-dataエンコーディング付きのフォームを送信すると、Railsはあまり満足していないようです。ファイルアップロードを削除すると、この問題が修正されました。

4

2 に答える 2

2

あなたのコントローラーについて私に怪しげに見える唯一の価値があるのはあなたのリダイレクトです。あなたはただすることができるはずです:

redirect_to admin_events_path
于 2012-11-12T21:39:40.913 に答える
1

次のようにフォームを設定してみてください。

form_for(@event, { url: admin_events_path, method: "POST" }) do
于 2012-11-12T21:29:41.473 に答える