首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > Ruby Rails >

rails简单小疑点

2012-03-12 
rails简单小问题控制器名字Admin,模型Product。在控制器里写了七个默认行为,控制器new的action:class Admin

rails简单小问题
控制器名字Admin,模型Product。在控制器里写了七个默认行为,控制器new的action:
class AdminController < ApplicationController
def new
  @product = Product.new  

  respond_to do |format|
  format.html
  end
  end
end
但在手写视图new.html.erb
(如下代码
<h1>新建产品</h1>
<% form_for(@product) do |f| %>
  <%= f.error_messages %>
  <p>
  <%= f.label :title %><br/>
  <%= f.text_field :title, :size => "20" %>
  </p>
 
  <p>
  <%= f.submit '创建' %>
  </p>
<% end %>
<%= link_to "显示", admin_index_path %>

浏览器报第二行错误。
 Showing app/views/admin/new.html.erb where line #2 raised:

undefined method `products_path' for #<ActionView::Base:0x7ff0d36141a0>

Extracted source (around line #2):

1: <h1>新建产品</h1>
2: <% form_for(@product) do |f| %>
3: <%= f.error_messages %>
4: <p>
5: <%= f.label :title %><br/>
我郁闷,找了好久也没找到,就因为是自己手敲?但自己检查了也没什么小错误呀!
还有,我的index那个路由的具名路由不是admin,而是admin_index。我记得脚手架生成应该是复数的admin阿?

[解决办法]
<% form_for(@product) do |f| %> 是用默认提交地址来指定url。
如果你没有在router中添加规则,则需指明具体行为,比如

<% form_for :product, @product, :url=> {:controller => "admin", :action => "new"}

热点排行