新手问题 simple_form 报 undefined method `merchants_path' for #<#<Class:0x007f9740c9c348>:0x007f973df44d78>错误

cdredfox · 2012年09月13日 · 最后由 cdredfox 回复于 2012年09月14日 · 4343 次阅读

hi,

我在使用 simple_form 过程中,我就建了一个最简单的表格,查是报了标题上的错,不知道为什么?

<%= simple_form_for @merchant do |f| %>
  <%= f.input :name%>
<%end%>

我在页面中一运行就报: undefined method `merchants_path' for #<#Class:0x007f9740c9c348:0x007f973df44d78> 这个错误,有人碰到过吗?谢谢!

配置路由。

对一个变量@merchant,simple_form 会使用 merchants_path 这样的路由

resources :merchants

@ruby_sky @suupic @evan 我已经路由中配置过了

namespace :cpanel do
#     # Directs /admin/products/* to Admin::ProductsController
#     # (app/controllers/admin/products_controller.rb)
    resources :merchant
    root :to => 'merchant#new'
  end

@cdredfox 你的路由包在 cpanel 里面,试下 simple_form_for [:cpanel, @merchant] , 可以用命令 rake routes 查看你所有的路由

@rociiu 非常谢谢,改成 simple_form_for [:cpanel, @merchant] 之后,确实不报错了,但是有一个很奇怪的问题,为什么我在 new 页面上生面的 form 表单的 action 地址是:/cpanel/merchants 呢?

它自动变成了复数形式? 但我用 rake routes 查看,并没有发现这个地址。

已解决了,貌似是 controller 的名字必须要取成复数形式,simple_form_for 好象自动生成的地址就是复数形式的

需要 登录 后方可回复, 如果你还没有账号请 注册新账号