小编ber*_*kes的帖子

如何限制Paperclip仅接受图像?

如何限制Paperclip仅接受图像?如果相关,我正在使用Amazon S3进行存储.谢谢阅读.

ruby-on-rails paperclip

13
推荐指数
2
解决办法
7582
查看次数

在文件关闭关闭vim NERDtree

我正在尝试vim,安装了一些插件,其中有一些NERDTree,跟着一些指南并设置了一个.vimrc(其中一半的内容我还不明白 - ).

令我恼火的是,如果我:wq,vim仍然活跃,它只会关闭文档的分屏.我最终得到了全屏NERDTree.在关闭最后一个标签或缓冲区时,我希望NERDTree也关闭.

或者我使用它错了?

vim nerdtree

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

Sinatra具有持久变量

我的sinatra应用程序必须解析一个~60MB的XML文件.这个文件几乎没有变化:在夜间的cron工作中,它被另一个人覆盖.

是否存在将解析后的文件作为变量保存在内存中的技巧或方法,以便我可以在传入的请求中读取它,但不必为每个传入的请求一遍又一遍地解析它?

一些Pseudocode来说明我的问题.

get '/projects/:id'
  return @nokigiri_object.search("//projects/project[@id=#{params[:id]}]/name/text()")
end

post '/projects/update'
  if params[:token] == "s3cr3t"
    @nokogiri_object = reparse_the_xml_file
  end
end
Run Code Online (Sandbox Code Playgroud)

我需要知道的是,如何创建这样一个@nokogiri_object,以便在Sinatra运行时它仍然存在.这有可能吗?或者我需要一些存储空间吗?

ruby scope sinatra

13
推荐指数
2
解决办法
7011
查看次数

使用Duckduckgo进行简单的站点搜索

我想添加简单的网站搜索,使用Duckduckgo,仅限搜索"example.com".

Stackoverflow已经解决了这个问题,使用一些JavaScript将site:example.com过滤器添加到查询中.

<form onsubmit="var txt=$(this).find('input[name=\'q\']'); txt.val(txt.val() + ' site:stackoverflow.com');" action="http://www.duckduckgo.com/" method="get" id="duck-duck-go-search">
  <input type="text" value="" maxlength="255" size="36" name="q">&nbsp;
  <input type="submit" value="DuckDuckGo">
 </form>
Run Code Online (Sandbox Code Playgroud)

不过,我更喜欢不依赖于JavaScript的解决方案.

网址应该是http://duckduckgo.com/?q=site:example.com%20might; 在site:example.com必须加入q=参数,它似乎.

有没有人为此找到一个简单的非JavaScript解决方案?

search-engine

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

ActiveRecord关系中的build和create方法有什么区别?

我有一个可以有0或1个配置文件的用户.在我的Controller中,如果给出了一些值,我想保存配置文件,如下所示:

# PUT /users/1
def update
  @user = User.find(params[:id])

  if @user.update_attributes(params[:user])
    if params[:profile][:available] == 1 #available is a checkbox that stores a simple flag in the database.
      @user.create_profile(params[:profile])
    end
  else 
    #some warnings and errors
  end
end
Run Code Online (Sandbox Code Playgroud)

我想知道的部分是create_profile魔术create_somerelationname.这与魔术相比如何build_somerelationname?什么时候应该使用哪个?

activerecord ruby-on-rails

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

在活动管理员中更改默认日期格式化程序

ActiveAdmin中,日期以所谓的美国格式打印%B %d, %Y %H:%M.例如March 19, 2013 13:25

但是,我的"默认"前端使用默认的Rails(ISO)格式打印它2013-03-07 14:12:31 UTC,如<%= Date.new %>在视图中的任何位置删除时所见.

  1. 什么是定义ActiveAdmin日期的格式?
  2. 如果可能的话,在何处或如何更改,只需遵循全局Rails wide i18n设置.

localization ruby-on-rails activeadmin

12
推荐指数
2
解决办法
8175
查看次数

覆盖从插件重新映射?

安装vim-ruby-debugger后插件"劫持"了几个映射.喜欢<leader>n,或者<leader>t我分别用于NERDTreeToggle和Command-T查找.

罪魁祸首是在这个ruby-debugger中的硬编码映射中找到的.

我希望将这些重新映射为<leader>rdX,即:以*r*uby-*d*ebugger为前缀.显然,我可以简单地破解插件并更改那里的映射.但这似乎有些过于苛刻(并且可能会在更新时中断).

我如何取消映射这些映射,所以vim会再次回退到我自己的映射?所以我可以重新映射我的.vimrc中的命令(它应该在哪里,恕我直言).

vim remap

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

如何使用ActiveAdmin或RailsAdmin保持DRY,与主应用程序分开

我正在构建一个仅限JSON的应用程序,它基本上是一个更精简的Rails,具有更少的中间件和更少的模块.这是一个在Rails 4中构建的应用程序.

我想开发一个简单的应用程序,可以管理主应用程序的数据库中的数据.为此,我想使用Active AdminRails Admin.但是这两个选项都以某种方式使用底层模型及其验证,要求等构建.

这意味着我需要至少共享主应用程序和RailsAdmin应用程序之间的模型.

我最好怎么做?是否有关于如何在主应用程序旁边的单独rails应用程序中构建管理应用程序的良好指南,而不是将其集成?

作为旁注:另一个很好的理由将管理员保留在与主应用程序不同的应用程序中,但是在共享数据库上,是无数的依赖项,像ActiveAdmin这样的宝石.

另请注意,我不仅仅对在不同的域或不同的服务器上运行管理员感兴趣,而且主要是为了让主应用程序保持精简和专注.并且要保持ActiveAdmin之类的依赖关系来自我的主应用程序.


脚注:

  • ActiveAdmin和RailsAdmin都不是性能问题.这是他们需要中间件,而只有JSON的Rail应用程序,只需要很少的模块,帮助器和中间件!Rails-API提供了如此纤薄的堆栈.性能不是管理员而不是管理员,而是Full-Rails vs Rails-API.
  • 性能不是我的主要问题,依赖和膨胀是!我现在有一个非常苗条,专注和精益的Rails应用程序,它可以用大多数Sinatra应用程序测量自己:).只有三个额外的宝石(每个宝石都有自己的一些依赖)和一个非常薄的中间件堆栈,我可以非常轻松地升级,管理和调试.

更实用:我没有 Devise(它是一个JSON-API,所以经过令牌验证),没有任何视图或模板引擎.没有Formtastic,No Paperclip,Rmagic,Kminari(寻呼机)等等.当我拉入"只是一个管理员"时,所有这些都将被添加到我的应用程序中.

ruby-on-rails rails-admin activeadmin

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

一个类<< self中的类定义是什么做的?

我知道如何使用self << class(eigenclass)添加类方法和类行为.但是,在阅读一些源代码时,我看到了另一种用法:

class LetterAvatar
  class << self
    class Identity
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

这是如何运作的?它应该做什么以及什么时候应该使用它?写这个的(可能是更多公认的)替代方法是什么?

ruby

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

在rspec测试中获取以字符串形式提供的URL或路径

对于确定侧边栏行为的控制器,我需要调用几个URL; 侧边栏将根据其显示的页面更改(ao).

describe SidebarController do
  before(:each) do
    @sidebar = SidebarController.new
  end
  it 'should return :jobseekers for root_path' do
    get(root_url)
    @sidebar.section(root_path).should eq :jobseekers
  end
end
Run Code Online (Sandbox Code Playgroud)

然而,这失败了 ActionController::RoutingError: No route matches {:controller=>"sidebar", :action=>"http://test.host/"}

我可以get将网址或路径作为字符串吗?是否有更智能的方法来设置request.数据,而不是GETting它?

rspec get

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