专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Ruby/Rails

rails简单小疑点

发布时间:2011-06-29 18:41:31 文章来源:www.iduyao.cn 采编人员:星星草
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"}
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: