在 Rails 中,您如何检测当前页面是否以“.foo”结尾?
基本上,我想根据 url 中传递的内容在我的视图中显示不同的内容。类似<% if !current_page?('something/something/foo') %>
但更动态的东西
在 Rails 中,您如何检测当前页面是否以“.foo”结尾?
基本上,我想根据 url 中传递的内容在我的视图中显示不同的内容。类似<% if !current_page?('something/something/foo') %>
但更动态的东西
您可以在此处找到如何获取您正在使用的完整 url 切换导轨版本,然后在获取此 url 后,您只需将其拆分为/然后获取最后一个元素,.last
如下所示:
url.split("/").last
我认为这是最简单的方法
我假设您正在谈论根据请求的文件类型以不同的方式响应。通常,这respond_to
是为了:
class SomeController < ApplicationController
def some_action
respond_to do |format|
format.html { render :new }
format.foo { render :foo }
end
end
end
否则,如果您真的只想在视图内做一些事情,请执行 zeantsoi 显示的操作。这只是一种不规则。如果我对用例有更多了解,我将能够更好地回答您的问题。
在 Rails 3.2+ 中:
# in your controller
url = request.original_url
@ext = File.extname(url) #=> .foo
# in your view
<% if @ext == '.foo' %>
# do this
<% else %>
# do that
<% end %>
在 Rails 3 中:
# to retrieve the fully qualified URL
url = "#{request.protocol}#{request.host_with_port}#{request.fullpath}"