【问题标题】:who calls url_for(options=nil), and when?谁调用 url_for(options=nil),何时调用?
【发布时间】: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 =&gt; 'blogs', :action =&gt; '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


【解决方案1】:

Rails form_for 助手在您的视图中调用 url_for 助手以基于传递给 form_for 的对象创建 URL。 Here 对此功能进行了更详细的描述。

【讨论】:

  • 您的链接页面中没有关于usr_for的解释,但谢谢!
  • Here 的解释完全相同(参见Relying on named routes 部分)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-11
  • 2015-12-08
  • 2013-03-05
  • 2015-08-31
  • 2012-06-30
相关资源
最近更新 更多