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

看起来 yourBlahsController是一个命名空间控制器,位于Admin模块下(即,它的完全限定名称是Admin::BlahsController)。如果是这样,在构建表单时,您还必须提供:admin命名空间,使用类似以下内容:

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

请参阅“处理命名空间”部分下的Rails Guide to Form Helpers 。

于 2013-04-15T03:55:24.507 回答