小编mač*_*ček的帖子

PHP:如何使用array_filter()过滤数组键?

回调函数array_filter()只传递数组的值,而不传递键.

如果我有:

$my_array = array("foo" => 1, "hello" => "world");

$allowed = array("foo", "bar");
Run Code Online (Sandbox Code Playgroud)

删除$my_array不在$allowed数组中的所有键的最佳方法是什么?

期望的输出:

$my_array = array("foo" => 1);
Run Code Online (Sandbox Code Playgroud)

php arrays key

338
推荐指数
7
解决办法
23万
查看次数

如何将Ruby数组拆分(块)成X个元素的一部分?

我有一个阵列

foo = %w(1 2 3 4 5 6 7 8 9 10)
Run Code Online (Sandbox Code Playgroud)

如何将其拆分或"分块"为更小的数组?

class Array
  def chunk(size)
    # return array of arrays
  end
end

foo.chunk(3)
# => [[1,2,3],[4,5,6],[7,8,9],[10]]
Run Code Online (Sandbox Code Playgroud)

ruby arrays

167
推荐指数
2
解决办法
11万
查看次数

如何在Rails中覆盖to_json?


更新:

这个问题没有得到适当的探索.真正的问题在于render :json.

原始问题中的第一个代码粘贴将产生预期结果.但是,仍然有一个警告.看这个例子:

render :json => current_user

一样的

render :json => current_user.to_json

也就是说,render :json不会自动调用to_json与User对象关联的方法.实际上,如果to_jsonUser模型上被覆盖,render :json => @user将生成ArgumentError如下所述.

摘要

# works if User#to_json is not overridden
render :json => current_user

# If User#to_json is overridden, User requires explicit call
render :json => current_user.to_json
Run Code Online (Sandbox Code Playgroud)

这一切对我来说都很愚蠢.这似乎告诉我,在指定类型时render实际上并没有调用.谁能解释一下这里到底发生了什么?Model#to_json:json

任何可以帮助我的genii都可以回答我的另一个问题:如何通过在Rails中组合@ foo.to_json(options)和@ bars.to_json(options)来构建JSON响应


原始问题:

我在SO上看过其他一些例子,但我没有做我正在寻找的事情.

我尝试着:

class User < ActiveRecord::Base

  # this actually …
Run Code Online (Sandbox Code Playgroud)

methods json overriding ruby-on-rails

93
推荐指数
4
解决办法
5万
查看次数

如何从两个大小相同的数组中构建Ruby哈希?

我有两个数组

a = [:foo, :bar, :baz, :bof]
Run Code Online (Sandbox Code Playgroud)

b = ["hello", "world", 1, 2]
Run Code Online (Sandbox Code Playgroud)

我想要

{:foo => "hello", :bar => "world", :baz => 1, :bof => 2}
Run Code Online (Sandbox Code Playgroud)

有什么办法吗?

ruby arrays hash

83
推荐指数
3
解决办法
2万
查看次数

如何修改自制公式?

我通过自制软件安装了imagemagick .

但是,由于我的当前配置存在错误,我需要调整公式的编译标志并重新安装.

我怎么能做到这一点?

homebrew compilation imagemagick package

72
推荐指数
2
解决办法
4万
查看次数

如何创建接受可变数量参数的Java方法?

例如,Java自己String.format()支持可变数量的参数.

String.format("Hello %s! ABC %d!", "World", 123);
//=> Hello World! ABC 123!
Run Code Online (Sandbox Code Playgroud)

如何创建自己接受可变数量参数的函数?


后续问题:

我真的想为此做一个方便的捷径:

System.out.println( String.format("...", a, b, c) );
Run Code Online (Sandbox Code Playgroud)

所以我可以把它称为不那么冗长的东西:

print("...", a, b, c);
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

java methods overloading function

67
推荐指数
3
解决办法
18万
查看次数

如何使用Rails 3/Rack在没有www的情况下重定向?

我知道有很多问题可以解答这个问题.我熟悉.htaccessnginx.conf方法,但我无法访问heroku上的这种传统配置方法.

Simone Carletti给出了这个利用Rails 2.x Metals的答案,但我使用的是Rails 3,这是不兼容的. 将非www请求重定向到Rails中的www URL

请注意:

我不是before_filter在我的ApplicationController中寻找一个简单的东西.我想完成类似于Simone的重写.我认为这至少是网络服务器或像Rack这样的中间件的工作,所以我想把这一点留在实际的应用程序代码中.

目标

redirect                to                  status
----------------------------------------------------
www.foo.com             foo.com             301
www.foo.com/whatever    foo.com/whatever    301
Run Code Online (Sandbox Code Playgroud)

只有主机匹配/^www\./才能重定向.应忽略所有其他请求.

seo redirect rack ruby-on-rails ruby-on-rails-3

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

将javascript对象转换为URL参数

我意识到,从根本上说,我可能会以错误的方式解决这个问题,所以我愿意向正确的方向努力.

我正在尝试使用HipChat API向房间发送通知,如下所示:

https://www.hipchat.com/docs/api/method/rooms/message

我正在尝试使用js对象的参数在示例中构建URL,所以基本上我正在尝试转换它:

var hipChatSettings = {
            format:"json",
            auth_token:token,
            room_id: 1,
            from: "Notifications",
            message: "Message"
        }
Run Code Online (Sandbox Code Playgroud)

对此:

https://api.hipchat.com/v1/rooms/message?format=json&auth_token=token&room_id=1&from=Notifications&message=Message

javascript url jquery

35
推荐指数
3
解决办法
4万
查看次数

Ruby中的Magic $ -prefixed变量; 在哪里有完整的参考?

我在Ruby中看过像这样的魔术变量. $_ $' $0

是否有完整的参考资料来说明它们的含义以及它们是如何设定的?

ruby variables

32
推荐指数
1
解决办法
8219
查看次数

如何在同一个Git存储库中同步两个分支?

这是我经常遇到的常见工作流障碍:

主人是我们的"稳定"分支

$ git status
# On branch master
nothing to commit (working directory clean)
Run Code Online (Sandbox Code Playgroud)

在分支上创建模块

$ git checkout -b foo
$ echo "hello" > world
$ git add .
$ git commit -m "init commit for foo module"
$ git checkout master
$ git merge foo
Run Code Online (Sandbox Code Playgroud)

在主人或其他分支机构工作

在接下来的几周内,将有更多代码直接由其他分支机构提交.foo分支将在这段时间内不受影响

在foo分支上恢复工作/进行更新

$ git checkout foo
Run Code Online (Sandbox Code Playgroud)

不好了!foo已经过时了!我理解为什么,但我确实需要foo重新同步.

这个问题

如何从foo分支机构获取最新内容?

git workflow git-rebase git-branch

29
推荐指数
2
解决办法
3万
查看次数