小编Exu*_*ery的帖子

如果条件,在Ruby中使用正则表达式

我正在尝试使用正则表达式作为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"

ruby ruby-on-rails

13
推荐指数
1
解决办法
3万
查看次数

登录后将用户返回上一页(Rails)

在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)

但即使登录成功,也会产生"拒绝访问"错误.

ruby-on-rails

10
推荐指数
1
解决办法
6487
查看次数

Maven AppAssembler没有找到课程

尝试修改现有的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没有使用正确的类路径,任何建议?

java maven appassembler

7
推荐指数
1
解决办法
3568
查看次数

MongoDB在文档数组中按最大值查找

给出一个包含以下文档的集合:

{
    "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的文件?

mongodb

7
推荐指数
1
解决办法
5289
查看次数

如何使用std :: greater对C++映射键进行排序?

我正在创建一个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 () - 但是当我包含那些时,我得到关于返回函数的函数的多个错误.

c++

6
推荐指数
2
解决办法
1万
查看次数

MySQL为表中的每个人选择前X个记录

有没有更好的方法从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个.

mysql greatest-n-per-group

4
推荐指数
1
解决办法
6509
查看次数