我有一个变量,比如/ projects / 3 / blah blah或/ projects / 3或者只是/ projects
我想做的是在Rails中有一个IF语句,如下所示:
如果urlPath包含/ projects继续
Rails / Ruby有一个方法吗?此外,它可能不会对/ books / projects或/ authors / mr-projects / etc等内容产生误报。
jquery发布到Rails,他们进行上述评估:
$.ajax({
url: '/navigations/sidenav',
//data:{"urlpath":urlpath}, //
data: "urlpath=" + urlpath,
success: function(e){
$("#sideNav-container").slideDown("slow");
}
});
答案 0 :(得分:3)
在rails中,您可以使用starts_with?
执行此类操作:
if params[:urlpath].starts_with? "/projects"
#...
end
当哈希查找求值为nil时,这当然失败了。这就是try
方法派上用场的地方:
if params[:urlpath].try(:starts_with?, "/projects")
#...
end
答案 1 :(得分:1)
if params[:urlpath]
if params[:urlpath].to_s.index('/projects') == 0
#...
end
end
示例:
答案 2 :(得分:0)
if params[:urlpath].to_s.match %r{^/projects}
...
end
或者你可以用js
来做'/projects'.match(/^\/projects/)
#=> ["/projects"]
'/books/projects'.match(/^\/projects/)
#=> null
也许你想检查某个视图是否已从指定的控制器呈现
if params[:controller] == 'projects'
...
end