卡在解析 URL 并在视图中使用它
Stuck in parsing URL and work with it in a view
尝试用这种格式解析 URL http://landing.com?data=123 - 我已经能够通过 irb 获取数据,例如:
require "addressable/uri"
uri = Addressable::URI.parse("http://landing.com?data=123")
uri.query_values['data']
=> '123'
但我一直在研究如何在 Rails 视图中与 'data' 进行交互。我试过将它包含在 Controller 中(pages_controller.rb 在我的示例中),例如:
class PagesController < InheritedResources::Base
def test
uri = Addressable::URI.parse("<%= request.original_url %>")
u = uri.query_values['data']
end
end
但不知道如何提取要在我的视图中使用的数据。对此有何指导?
如果我打开其中一个视图,比如我调用 'test' 方法的地方 - 我会得到 未初始化的常量 PagesController::Addressable 但确保它在我的环境 gem 其中 addressable/uri
控制器已经解析了很多查询信息。您可以使用 params
访问它。在这种情况下,您可以使用
u = params[:data]
正如 Sophie Déziel 所说,如果是在应用程序请求下,您可以通过 params 哈希访问您的查询值。参数存在于您的控制器和视图中。
如果您谈论的是硬编码 URL 或从 3rd 方来源获得的 URLS,则需要在您的控制器 (@u = ...) 中创建一个实例变量,以便在您的视图中可用。
请注意,您不应该在视图中调用操作方法,它们是 'invoked' 由 Rails 框架提供的。
# controller
def my_action
# .....
@u = uri.query_values['data']
end
# view
<%= @u %>
尝试用这种格式解析 URL http://landing.com?data=123 - 我已经能够通过 irb 获取数据,例如:
require "addressable/uri"
uri = Addressable::URI.parse("http://landing.com?data=123")
uri.query_values['data']
=> '123'
但我一直在研究如何在 Rails 视图中与 'data' 进行交互。我试过将它包含在 Controller 中(pages_controller.rb 在我的示例中),例如:
class PagesController < InheritedResources::Base
def test
uri = Addressable::URI.parse("<%= request.original_url %>")
u = uri.query_values['data']
end
end
但不知道如何提取要在我的视图中使用的数据。对此有何指导?
如果我打开其中一个视图,比如我调用 'test' 方法的地方 - 我会得到 未初始化的常量 PagesController::Addressable 但确保它在我的环境 gem 其中 addressable/uri
控制器已经解析了很多查询信息。您可以使用 params
访问它。在这种情况下,您可以使用
u = params[:data]
正如 Sophie Déziel 所说,如果是在应用程序请求下,您可以通过 params 哈希访问您的查询值。参数存在于您的控制器和视图中。
如果您谈论的是硬编码 URL 或从 3rd 方来源获得的 URLS,则需要在您的控制器 (@u = ...) 中创建一个实例变量,以便在您的视图中可用。
请注意,您不应该在视图中调用操作方法,它们是 'invoked' 由 Rails 框架提供的。
# controller
def my_action
# .....
@u = uri.query_values['data']
end
# view
<%= @u %>