如何检测当前页面是否以" .foo"结尾?在Rails?
基本上,我希望根据网址中传递的内容在我的视图中显示不同的内容。
类似于<% if !current_page?('something/something/foo') %>
但更具动态性的
答案 0 :(得分:1)
我假设您正在谈论根据请求的文件类型响应不同的事情。通常,这是respond_to
的用途:
class SomeController < ApplicationController
def some_action
respond_to do |format|
format.html { render :new }
format.foo { render :foo }
end
end
end
否则,如果你真的想在视图中做一些事情,那就做zeantsoi所展示的。这只是一种不规则的。如果我对用例有更多了解,我会更好地回答你的问题。
答案 1 :(得分:1)
在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}"
答案 2 :(得分:1)