小编aBa*_*boy的帖子

rails json使用gzip压缩响应

我有一个用rails编写的api,每个请求都响应一个JSON响应.

响应可能很大,所以我需要使用gzip压缩JSON响应.

想知道如何在rails控制器中执行此操作?

我添加了这条线

use Rack::Deflater
Run Code Online (Sandbox Code Playgroud)

在config.ru中

我是否还应该改变呈现JSON的行?

render :json => response.to_json()
Run Code Online (Sandbox Code Playgroud)

另外,我如何检查响应是否是gzip格式.. ??

我从终端做了一个curl请求,我只看到普通的普通JSON.

json gzip rack ruby-on-rails ruby-on-rails-3

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

Rails CanCan宝石重构能力等级

我的rails应用程序中有大约13个模型,我在所有这些模型上都使用了它.我的能力课程变得越来越大.我对不同的CRUD操作有不同的能力条件,这使得它很难管理.

有人可以指导我如何重构这个......?比如,使用模块或类来使我的能力课看起来很整洁.

ruby rubygems ruby-on-rails cancan ruby-on-rails-4

11
推荐指数
1
解决办法
968
查看次数

在git pre-receive hook中访问已更改的文件路径

我正在远程仓库上编写一个git预接收挂钩,以确保推送的代码符合我们公司的内部指南.

我能够找到在触发预接收挂钩时要检查的所有文件,但是,我没有这些文件的路径来使用普通文件操作打开它们(例如cat git_working_directory/file_name会抛出No such file or directory错误).验证代码的应用程序需要将文件路径作为参数,以便它可以打开文件并运行其检查.

考虑这种情况:开发人员创建了一个新文件并将其推送到服务器并触发了预接收挂钩.在此阶段,新文件未保存到远程工作目录,因为预接收挂钩仍在运行.

我想知道是否有一个临时位置,文件一旦被推送就保存在git中,以便我可以将该目录传递给应用程序来运行检查?

更新:

我可以结账到临时位置并在那里运行检查,这可能是一个选项,但考虑到开发人员经常推动的事实,有时甚至在同一时间和回购非常大,这个选项似乎不可行.我正在寻找一个解决方案,我可以使用文件的路径,如果它以某种方式可用.

git git-remote githooks

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

从工人那里调用多个sidekiq工人

我必须根据用户的请求运行多个作业.然而,其中只有一个是重要的.

所以我有一个MainWorker在它的perform方法我称之为不同的其他工人一样Worker1,Worker2.

Worker1和Worker2可以延迟,我需要优先考虑MainWorker.

所以这是我的执行方法现在的样子

class MainWorker
 def perform( user_id ) 
   User.find( user_id ).main_task
   Worker1.perform_aync( user_id ) 
   Worker2.perform_aync( user_id ) 
 end
end
Run Code Online (Sandbox Code Playgroud)

我以后可能会有更多的子工人.我想知道这是一个好习惯还是有更好的方法来做到这一点.但是,我给自定义队列名称和优先级基于worker.

redis ruby-on-rails-3 ruby-on-rails-3.2 sidekiq

5
推荐指数
1
解决办法
3417
查看次数

如何使用php获取XML中所有现有标签的列表

我有一个看起来像这样的xml数据

<channel>
<title>-----</title>
<link>------</link>
<description>---</description>
<lastBuildDate>Tue, 27 Sep 2011 16:37:01 +0000</lastBuildDate>
<language>en</language>
<generator>-------</generator>
<item>
    <title>-----</title>
    <link>-------</link>
    <comments>------</comments>
    <pubDate>Tue, 27 Sep 2011 16:37:01 +0000</pubDate>
    <category>-----</category>
</item>
    <item>
    <title>-----</title>
    <link>-------</link>
    <comments>------</comments>
    <pubDate>Tue, 27 Sep 2011 </pubDate>
    <category>-----</category>
</item>
    <item>
    <title>-----</title>
    <link>-------</link>
    <comments>------</comments>
    <pubDate>Wed, 28 Sep 2011 16:37:01 +0000</pubDate>
    <category>-----</category>
</item>
</channel>
Run Code Online (Sandbox Code Playgroud)

从这里,我需要检索所有现有的XML标签给用户,如频道,标题,链接,项目等,包括它们的子标签。.我的意思是XML文件中的所有现有标签我需要如何做的帮助使用php时,我使用了DOM和简单的XML对象,但是如果我知道我需要的标签名称,则只能获取特定标签中的值。

但是我实际上需要处理许多我不知道该特定xml的结构和标签是什么的xml文件,为此,我需要获取现有的标签名称,以便可以将其显示给用户以选择他需要的标签...

我需要使用php进行此操作的建议。

提前致谢。

php xml

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