我正在尝试使用正则表达式作为Ruby(1.9.2)if语句中的条件,但它仍然返回true,即使正则表达式求值为nil
if (params[:test] =~ /foo/)
return "match"
else
return "no match"
end
Run Code Online (Sandbox Code Playgroud)
即使Rails.logger.info(params[:test])
显示测试设置为,上面返回"匹配""bar"
在rails 2.3.8站点上,我在每个页面上都有登录链接(这会将用户带到一个单独的登录页面).成功登录后,用户当前被重定向到root.相反,我想重定向到他们以前查看的页面.
我尝试过使用request.referer:
redirect_back_or_default(request.referer)
Run Code Online (Sandbox Code Playgroud)
其中redirect_back_or_default:
def redirect_back_or_default(default)
redirect_to(session[:return_to] || default)
session[:return_to] = nil
end
Run Code Online (Sandbox Code Playgroud)
但即使登录成功,也会产生"拒绝访问"错误.
尝试修改现有的Java/Tomcat应用程序,以便在他们的教程之后在Heroku上进行部署,并遇到AppAssembler未找到入门类的一些问题.运行目标/ bin/webapp(或部署到Heroku)会导致Error: Could not find or load main class org.stopbadware.dsp.Main
java -cp target/classes:target/dependency/* org.stopbadware.dsp.Main
然而,正确执行运行.这是pom.xml的相关部分:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<version>1.1.1</version>
<configuration>
<assembleDirectory>target</assembleDirectory>
<programs>
<program>
<mainClass>org.stopbadware.dsp.Main</mainClass>
<name>webapp</name>
</program>
</programs>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>assemble</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
我的猜测是mvn package
导致AppAssembler没有使用正确的类路径,任何建议?
给出一个包含以下文档的集合:
{
"host" : "example.com",
"ips" : [
{
"ip" : NumberLong("1111111111"),
"timestamp" : NumberLong(1373970044)
},
{
"ip" : NumberLong("2222222222"),
"timestamp" : NumberLong(1234978746)
}
]
}
Run Code Online (Sandbox Code Playgroud)
我需要与X的IP值返回所有文件,但只有当X相关的时间戳是最高的IPS阵列中的时间戳(所以上面的例子中文件应该不匹配"2222222222"的搜索,因为这是没有的IP最近的时间戳).
这是我第一次在MongoDB中做了一些非常基本的东西,所以我能得到的最接近的是:
coll.aggregate({$ match:{"ips.ip":X}},{$ group:{"_ id":"$ host","max":{$ max:"$ ips.timestamp"}}} {$排序:{ "ips.timestamp": - 1}})导致
这显然没有给我我正在寻找的东西,它返回任何ips.ip值为X.如果X的关联时间戳是该ips数组的最高值,我怎么才返回ip.ip为X的文件?
我正在创建一个std::map<int, int>
C++,我更喜欢让它们从最高到最低排序,而不是默认的排序顺序.我的研究引导我到std :: more这看起来很有希望但是在尝试使用它时我遇到了编译错误:
一元'*'的无效类型参数(有'int')
我的地图声明是:
std::map<int, int, std::greater<int> > numMap;
Run Code Online (Sandbox Code Playgroud)
而且这个函数抛出了错误:
void Row::addNumber(int num, int pos) {
numMap.insert(num, pos);
}
Run Code Online (Sandbox Code Playgroud)
像这样的类似问题的答案包括声明中的括号,即std :: greater () - 但是当我包含那些时,我得到关于返回函数的函数的多个错误.
有没有更好的方法从MySQL表中获得多个"前X"结果?当不同foo的数量很小时,我可以通过联合轻松完成此任务:
(SELECT foo,score FROM tablebar WHERE (foo = 'abc') ORDER BY score DESC LIMIT 10)
UNION
(SELECT foo,score FROM tablebar WHERE (foo = 'def') ORDER BY score DESC LIMIT 10)
Run Code Online (Sandbox Code Playgroud)
我显然可以继续为foo的每个值添加联合.但是,当foo有500多个不同的值时,这是不实际的,我需要每个的前X个.