【发布时间】:2015-05-14 15:13:33
【问题描述】:
在 ruby 1.9.3 和 rails 3.2.6 中,我构建了一个最简单的项目:
rails _3.2.6_ new subdomains
rails g scaffold Blog name:string subdomain:string
然后,我添加一个空白函数
def url_for(options = nil) {}
进入文件 app/helper/url_helper.rb
在app/controller/application_controller.rb中追加一行
class ApplicationController < ActionController::Base
include UrlHelper
end
运行后,当我点击页面http://localhost:3000/blogs/new的按钮Create Blog时,总是报错:
No route matches [POST] "/blogs/new"
不知道是谁用参数:controller => 'blogs', :action => 'new'调用了这个函数url_for,什么时候?
我知道我一定会错过一些关于 Rails 的基本知识,任何建议都将不胜感激!
【问题讨论】:
-
我不确定你是否只是在玩,但你不必建立自己的
url_for。 Rails 已经提供了一个同名的方法供你使用。 -
@meagar 当然我不知道我为什么要建立自己的
url_for,因为sn-p来自here,而且你知道该项目是5年前创建的,所以如果我想了解#221 Subdomains in Rails 3,我必须使用ruby 1.9.3 and rails 3.2.6等新版本创建它。复制代码后出现如下错误,于是搭建了一个最简单的项目来理解url_for -
尝试遵循 5 年前的 Rails 教程是您能做的最徒劳的事情。找一个更新的教程,一个 5 岁的教程会在很多重要方面错误,或者只是完全错误。
-
@meagar 你是对的,我不应该遵循古老的教程,但我想遵循shapado,这是我找到的最好的基于 FOSS Q/A 平台的 rails,但它使用更早子域解析
标签: ruby-on-rails ruby ruby-on-rails-3