问题标签 [url-for]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - url_for 方法有什么区别?
我想知道这两种方法有什么区别:
ActionView::Helpers::UrlHelper.url_for
和
ActionController::UrlWriter.url_for
?
ruby-on-rails - Rails:在 ActionMailer 视图中生成完整的 URL
我正在使用 ActionMailer 发送注册确认电子邮件。电子邮件需要包含返回站点的链接以验证用户,但我无法说服 Rails 生成完整的 URL(包括域等)。
我正在使用:
在我看来
b部分:
在开发模式下,如果我没有在上面的链接中指定主机明确性,Rails 就会抱怨。但我不想在生产中这样做。有什么解决办法吗?
ruby-on-rails - Ruby on Rails: url_for :back 导致 back_url 的 NoMethodError
我正在尝试使用 url_for(:back) 在用户登录时创建一个重定向到上一页的重定向。
当用户自己进入登录页面时,我已经成功地工作了。但是,当用户由于访问需要对用户进行身份验证的页面而被重定向到登录页面时,重定向会将用户返回到他/她尝试访问权限不足的页面之前的页面。
我正在尝试修改我的登录控制器操作以正确处理重定向。我的计划是在发生强制重定向时使用查询字符串参数“redirect”。在控制器中,如果该参数存在,则使用该 URL;否则,使用 url_for(:back),或者如果这不起作用(由于缺少 HTTP_REFERER),那么用户将被重定向到站点的主页。
这是应该实现此逻辑的代码片段:
我得到的错误是:
请记住,我之前已经让它工作了—— url_for(:back) 在我添加这个逻辑之前就知道如何正确操作。
提前感谢您的任何想法!
ruby-on-rails - 类 ProfilePresenter < ActionView::Base | url_for 不起作用。为什么?
url_for 不起作用。为什么?
我做了一个这样的新实例
ruby-on-rails - 为什么 url_for 不像我认为的那样渲染这个?
我的控制器中有这个:
在我看来:
URL 不是我所期望的,例如
代替
但是,我只是手动执行此操作,我得到了正确的 URL:
我在这里想念什么?
ruby-on-rails - Rails3:重写 url_for 以支持子域,如何扩展 action mailer 以使用此类 url_for
url_for
在控制器的视图中使用修改是可以的。但是我在使用 ActionMailer 时遇到了麻烦。
我尝试使用以下内容:
但是 ActionMailer 视图仍然使用来自 ActionDispatch::Routing::RouteSet 的旧的未修改的 url_for。
添加新 url_for 的最佳做法是什么
ruby-on-rails - 根据当前记录为已知操作创建 Rails 路径
作为模板的一部分,我展示了一些在 application_controller 中创建的自动链接。其中一些链接将提供从显示页面到相应编辑页面的直接导航,以及一些类似的东西。
我当前的代码包括:
除了在我的 routes.rb 文件中定义子资源之外,这很有效。
在这种情况下,而不是导航到:
它导航到
这不是一条有效的路线。
任何关于如何实现这一点的想法将不胜感激。我热衷于尽可能避免特殊情况。
ruby-on-rails - Rails url_for 和命名空间模型
在 Rails 中,是否可以在模块中命名模型并仍然从中获得正确的行为url_for
?
例如,在这里,url_for
按预期工作:
而在将User
模型放入模块后,url_for
抱怨未定义的方法m_user_path
:
是否可以url_for
忽略模块M::User
并返回user_path
而url_for(@user)
不是m_user_path
?
更新
因此,在将近 5 年后,感谢 esad,这就是解决方案。这已经在 Rails 4.2 中进行了测试。
注意:使用 生成模型、视图和控制器时bin/rails g scaffold m/user
,视图和控制器也会被命名空间。你需要移动app/views/m/users
到app/views/users
和app/controllers/m/users_controller.rb
到app/controllers/users_controller.rb
;M
您还需要在除模型之外的任何地方删除对模块的引用M::User
。
最后,这里的目标是命名模型而不是视图和控制器。使用 esads 解决方案,模块M
(包含User
)被明确告知不要出现在路由中。因此,实际上,它M
被剥夺了,只剩下了User
。
用户模型现在可以驻留在app/views/models/m/user.rb
其中,用户控制器app/views/controllers/users_controller.rb
可以在其中找到,并且可以在 中找到视图app/views/users
。
ruby-on-rails - 用 url_for 查询参数?
正在工作和生成/comments/123/edit
。现在我需要添加一个查询参数,以便代替
它是
我试过url_for([:edit, @post], :qp => "asdf")
但不行。
ruby-on-rails-3 - Rails url_for Gravatar 路由错误
该函数在 application_help.rb 中定义:
它在视图中使用:
偶尔,它的使用会导致路由错误:
发生错误时提供了有效的电子邮件。
如果我用这个逻辑替换 url_for() ,它会按预期工作:
** 编辑 ** 我从 routes.rb 文件中删除了以下行:
有没有办法让 url_for 在没有“旧版野控制器路由”的情况下工作?