1

Railsにフォームがあります

<div class="page-header">
    <h3>Create Blah</h3>
</div>
<%= simple_form_for @blah do |f| %>
    <%= f.input :id %>
    <%= f.input :name %>
    <%= f.input :pho %>
    <%= f.input :fun %>
    <%= f.submit :class => 'btn btn-primary' %>
<% end %>
<br>

送信ボタンをクリックすると、コードはどこに行こうとしますか? の create メソッドを呼び出しますblah_controller.rbか? 現在、ルーティングエラーが発生するため

Routing Error
uninitialized constant BlahsController

BlahController#createメソッドは次のとおりです。

 def create
    authorize! :create, :blahs
    @blah = Blah.new(params[:blah])
    if @blah.save
      redirect_to admin_blah_path(@blah), :notice => 'New blah created!'
    else
      render :new
    end
 end

私のrake routes中で、私は持っています

    admin_blahs GET    /admin/blahs(.:format)                      admin/blahs#index
                POST   /admin/blahs(.:format)                      admin/blahs#create
 new_admin_blah GET    /admin/blahs/new(.:format)                  admin/blahs#new
edit_admin_blah GET    /admin/blahs/:id/edit(.:format)             admin/blahs#edit
     admin_blah GET    /admin/blahs/:id(.:format)                  admin/blahs#show
                PUT    /admin/blahs/:id(.:format)                  admin/blahs#update
                DELETE /admin/blahs/:id(.:format)                  admin/blahs#destroy
4

1 に答える 1

1

あなたのモジュールBlahsControllerは名前空間付きのコントローラーで、Adminモジュールの下にあるようです (つまり、その完全修飾名は ですAdmin::BlahsController)。その場合、フォームを構築するときに:admin、次のようなものを使用して名前空間も提供する必要があります。

<%= simple_form_for [:admin, @blah] do |f| %>

Rails Guide to Form Helpers「Dealing with Namespaces」セクションを参照してください。

于 2013-04-15T03:55:24.507 に答える