【发布时间】:2013-04-15 03:30:26
【问题描述】:
我在 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>
当我点击提交按钮时,代码会尝试去哪里?它是否调用blah_controller.rb 的create 方法?因为目前,我遇到了路由错误
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
【问题讨论】:
-
您能否显示在表单呈现之前创建 (at)blah 的控制器方法的代码?此外,如果 (at)bla.save 应该是 (at)blah.save [用 @ 替换 (at)]
-
在我输入问题时发生了错字...对不起。
-
@elevine 这只是 (at)blah = Blah.new
-
您是否检查了 html 以查看表单
action属性是什么(即它被传递到的 URI)? -
不,我不确定你的意思。你能提供更多细节吗
标签: ruby-on-rails ruby forms routing