小编sup*_*ary的帖子

在Ruby中将整数限制为某个范围?

我有一个实例变量@limit,它必须大于0且不大于20.我目前有这样的代码:

@limit = (params[:limit] || 10).to_i
@limit = 20 if @limit > 20
@limit = 0 if @limit < 0
Run Code Online (Sandbox Code Playgroud)

这看起来很难看.有没有更好的方法将整数限制为一系列值?

谢谢!

ruby

14
推荐指数
4
解决办法
3829
查看次数

如何在Ruby中向全局范围添加方法?

Sinatra定义了许多似乎存在于当前范围内的方法,即不在类声明中.这些是在Sinatra gem中定义的.

我希望能够编写一个gem,它将创建一个我可以从全局范围调用的函数,例如

add_blog(:my_blog)
Run Code Online (Sandbox Code Playgroud)

然后,这将在全局范围内调用函数my_blog.

显然我可以使用add_blog函数monkeypatch gem中的Object类,但这似乎有点过分,因为它会扩展每个对象.

ruby

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

在Ruby中创建多个相同的方法

在我的一个模型中,我有这样的代码:

def lendable_category=(i)
  set_category(i)
end

def free_category=(i)
  set_category(i)
end

def skill_category=(i)
  set_category(i)
end
Run Code Online (Sandbox Code Playgroud)

这些方法是我添加的虚拟参数,因此我可以使用params哈希保存对象而不会强制控制器中的哈希值.

三次说同样的事并不好.有没有更好的方法来创建这样的相同方法?

ruby ruby-on-rails

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

是否存在将绑定变量传递给AR关系的DRY方法?

我有这样的代码:

t = "%#{term}%"
where('name like ? or email like ? or postcode like ?', t, t, t)
Run Code Online (Sandbox Code Playgroud)

正如您所看到的那样,它正在跨多个领域进行搜索.

有没有办法避免重复的t?这让我觉得很脏.

谢谢

ruby-on-rails active-relation rails-activerecord

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

节点js错误:大多数中间件(如会话)不再与Express捆绑在一起,必须单独安装

我刚刚升级到Express版本3,我看到我的中间件出错了.特别:

Error: Most middleware (like session) is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware.

堆栈跟踪是:

at Function.Object.defineProperty.get (/home/phpsaravana/nodeshop/node_modules/express/lib/express.js:89:13)
at module.exports (/home/phpsaravana/nodeshop/node_modules/connect-mongo/lib/connect-mongo.js:30:39)
at Object.<anonymous> (/home/phpsaravana/nodeshop/admin.js:6:42)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

node.js

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

如何在Typescript中编译装饰器(注释)?

在Angular 2中,我可以创建一个组件,如下所示:

import {Component, Template} from 'angular2/angular2'

@Component({
  selector: 'my-component'
})
@View({
  inline: "<div>Hello my name is {{name}}</div>"
})
export class MyComponent {
  constructor() {
    this.name = 'Max'
  }
  sayMyName() {
    console.log('My name is', this.name)
  }
}
Run Code Online (Sandbox Code Playgroud)

(来源:http://blog.ionic.io/angular-2-series-components/)

然后将其编译为常规ES5.

我的问题分为两部分:

  1. 这些装饰器特定于Angular.他们是如何定义的?
  2. 如何定义自己的装饰器?

typescript angular

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

是否可以更改Ruby对象的类?

是否可以在实例化Ruby对象后更改它的类,如:

class A
end

class B
end

a = A.new
a.class = B
Run Code Online (Sandbox Code Playgroud)

或类似的.

(上面的代码没有运行,因为类是只读变量)

我知道这不可取,有点奇怪,而不是我打算做的事情,但有可能吗?

ruby class object

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

有没有办法在开发中设置set config.action_controller.asset_host

在我的production.rb中,我将asset_host设置为CloudFront,如下所示:

config.action_controller.asset_host = 'http://xxxxxxxx.cloudfront.net'
Run Code Online (Sandbox Code Playgroud)

现在我发现在某些情况下(特别是输出JavaScript嵌入到另一个站点)我需要在开发环境中设置asset_host,默认的null不会删除它.理想情况下我想设置:

config.action_controller.asset_host = 'http://localhost:3000'
Run Code Online (Sandbox Code Playgroud)

但这个端口无法保证,我不愿意硬编码.有没有办法将asset_host设置为当前域和端口?

谢谢!

ruby-on-rails

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

如何调试Open Shift 503服务不可用错误

我有一个节点应用程序,我正在尝试部署到Open Shift.这是快递发电机的基本快递,几乎是香草.它在本地运行.当我推送到OpenShift时,我收到以下错误:

503 Service Unavailable
No server is available to handle this request.
Run Code Online (Sandbox Code Playgroud)

现在我并不感到惊讶,因为我已经将一个全新的应用程序一次性推向开放式转换,但我想知道的是如何找到它们?

我该如何调试呢?如何破解服务器并看看发生了什么?

openshift

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

如何使用NPM依赖项的git版本控制,并仍在本地编辑这些依赖项?

我有多个具有多个依赖项的项目.有些项目共享依赖项,因此我们已经开始使用git版本控制来允许我们在不破坏其他项目的情况下更新依赖项.

我可能有这样的结构:

Project A
   |
    ---> Dep B version 1.0.0

Project C
   |
    ---> Dep B version 2.0.0
Run Code Online (Sandbox Code Playgroud)

目前,我们已将项目签出在一个文件夹中,然后我们使用Zelda或NPM链接将依赖项连接到正确的节点模块,因此在我的项目文件夹中,我会:

projects
  | dep_b
  | project_a 
  | project_c
Run Code Online (Sandbox Code Playgroud)

每个文件夹都是一个git仓库.项目A和C将查看其父文件夹以查找Dep B.

直到我们开始使用版本控制,这工作得很好.但是现在,我们有每个依赖项的多个版本,并非所有版本的依赖项都与所有项目兼容.我找不到一种简单的方法将正确的签出版本连接到正确的项目中.

是否有工具可以帮助管理这个?

javascript git npm tooling

5
推荐指数
0
解决办法
118
查看次数