0

私が抱えている問題を解決するために、Rails 3 のルーティングをより深く理解したいと思っています。私は datagrid gem を使用しようとしています。私はこれを持っています:

class UsersController < ApplicationController
  def index
    @admin_console = AdminConsole.new(params[:admin_console])
    ...

そして、ユーザーの index.html.erb で:

<%= form_for @admin_console, :html => {:method => :get} do |f| -%>
  <% @admin_console.filters.each do |filter| -%>
       ...

「admin_consoles_path」が未定義のメソッドであるというエラーが表示されます。

ルートでは、私はこれを持っています:

resources :users

AdminConsoleController がありません。私はちょうどそれのためのモデルを持っています。ルートに AdminConsole が必要な理由を理解したいと思います。

4

1 に答える 1

0

ヘルパーの短縮バージョンを使用しているため、form_for ヘルパーは admin_consoles_path を探しています。

これ、特にセクション 2.3 では、form_for を使用したときに実際に何が起こっているかを説明しています。

## Creating a new article
# long-style:
form_for(@article, :url => articles_path)
# same thing, short-style (record identification gets used):
form_for(@article)

AdminConsole を作成するにはコントローラー アクションが必要だと思いますが、上記のサンプルのように URL を指定する場合は、必ずしも独自のコントローラーが必要というわけではありません (ベスト プラクティスではないかもしれませんが)。

于 2013-02-01T20:13:06.920 に答える