小编omn*_*nse的帖子

什么时候在Ruby中使用Singleton类是明智的?

我正在阅读Ruby中的Singletons.我以前从来没有真正需要使用它们,但我很好奇并决定查看它们,看看我是否应该在过去使用它们,或者如果我知道它们是什么我将来也可以使用它们用于.

我能想到的唯一一次使用它是:

  • 当我需要一个特殊的对象.示例:"智能" Hash对象,其行为类似于普通的Ruby哈希,并带有一些额外的怪癖.
  • 当我想要它时,只有一个类的实例可以存在.

但是,我不确定我是否需要上述任何一种.

ruby singleton

11
推荐指数
3
解决办法
5627
查看次数

如何使用Puma配置Rails以使用SSL?

我只发现了如何使用SSL启动puma:

$ puma -b 'ssl://127.0.0.1:9292?key=path_to_key&cert=path_to_cert'

但是,没有关于如何在文档中包含中间CA证书的说明.有人能指出我正确的方向吗?我正在使用Puma1.6.3

谢谢!

ssl ruby-on-rails puma

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

Chrome中@ font-face的渲染效果很糟糕

嗨,

我想知道是否有办法以某种方式强制Chrome(包括Safari和Opera)渲染@font-face更好的加载字体?我不确定它是否仅仅是这两种字体,但我真诚地怀疑它.

截图

顶部快照是Firefox 8中文本的呈现.下面的一个是来自Chrome(16).现在,这不会打扰我多,如果它是在IE渲染要命,太-但在IE它呈现很奇妙(与之相似于FF).

所以,我确实尝试了一些事情:

  1. 试着申请text-shadow.它让它看起来好一点,但仍然非常糟糕.
  2. 我尝试过使用-webkit-font-smoothing: antialiased,但这似乎没有任何影响.

现在,我可以不再是一个令人烦恼的完美主义者而只是使用一个图像作为徽标(因为较小的文本不会表现得那么糟糕,但仍然很糟糕,请注意)并完成它.

我真的不喜欢这个解决方案,但如果没有其他解决方案,我会接受它.

谢谢!

css webkit google-chrome font-face windows-7

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

如何开始读取二进制数据的偏移量?

我有一个类似C的结构:

SomeStruct << BinData::Record
endian :little

uint32 :offsetOfName
uint32 :offsetOfLastname
#...
uint32 :lenVars
struct :Person, :length => :lenVars
    string :name
    string :lname
    #...
end
Run Code Online (Sandbox Code Playgroud)

我之前有很多偏移和长度:Person.所有偏移量和长度都描述了:Person结构中的数据.

如何在指定的偏移量,给定长度或直到下一个偏移量开始读取数据?

ruby binary-data bindata

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

如何从远程服务器中提取git存储库?

我已经看到了一些类似的问题,但他们没有帮我解决这个问题,而且我找不到任何教程(说实话,我真的不确定我在寻找什么).另外,我没有使用git除了拉/推GitHub,这就是为什么(至少我相信)我很困惑!GitHub让我为设置回购而烦恼!

我在服务器上做了什么:

  • sudo apt-get install git 安装(我认为)我需要继续的一切.
  • 我在里面创建了一个测试库(只有几个txt和html文件) git_test
  • git init
  • git add .
  • git commit
  • 我还习惯vim .git/description将描述更改为starships.

我从电脑上做了什么

我预装了git

  • git clone destielstarship@[remote_server]/starships1

哪个产生了这个错误: fatal: Unable to look up destielstarship@[remote_server](port 9418) (A non-recoverable error occurred during a database look-up. )


  1. 为了清楚起见,我用[remote_server]替换了IP地址,我希望我没有让它更令人困惑.


更新:哎呀!修正了一个尴尬的错字!

git

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

rb_iv_get和rb_iv_setVS。Data_Wrap_Struct用于创建自定义类

rb_iv_getrb_iv_setVS。Data_Wrap_Struct用于定制cals

因此,在阅读Ruby Extension API时,我发现Data_Wrap_Struct它将指针转换为Ruby对象(对吗?)。但是,当我尝试使用时,我总是收到随机错误之类的消息,所以我有点切换到类似以下内容:

void Init_custom() {
    //cCustom declared as VALUE higher in the code
    cCustom = rb_define_class("Custom", T_OBJECT);
    rb_define_method(mTester, "initialize", init_Custom, 1);
    rb_define_method(mTester, "someValue", someValue_get_Custom, 0);
    rb_define_method(mTester, "someValue=", someValue_set_Custom, 1);
    //And so on.
}
Run Code Online (Sandbox Code Playgroud)

其次,someValue_get_Customand someValue_set_Custom为:

VALUE someValue_get_Custom(VALUE self) {
    return rb_iv_get(self, "@someValue")
}

VALUE someValue_set_Custom(VALUE self, VALUE val) {
    return rb_iv_set(self, "@someValue", val) //or do I have to do return val;?
}
Run Code Online (Sandbox Code Playgroud)

另一个选择是创建一个C版本,attr_accessor该版本会使代码和DRYer略短一些,但仍将是计划B的一部分(使用rb_iv_ set/ …

c ruby

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

Ruby on Rails还是Node.js?哪个更适合电子商务网站?

我正在建立一个电子商务网站来处理大量的药品.我无法在Ruby on Rails和Node.js之间做出选择.有人能告诉我哪个会更有帮助吗?

我只是需要一些意见.谢谢

ruby e-commerce node.js

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

如何使用一行代码创建三个对象?

如何用一行代码创建三个空哈希?

我知道这a = b = c = Hash.new不起作用,因为它会创建对同一个Hash对象的三个引用.

a,b,c = Hash.new将分配Hasha,但bc保持nil.

我知道我能做到a, b, c = Hash.new, Hash.new, Hash.new,但看起来并不干净.

ruby variable-assignment

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

在Ruby中,foo = expression是合法的吗?

注意:我不确定如何命名这个问题,所以如果有人有更好的想法,请编辑它.

我会直接回答这个问题,因为没有任何预先解释要求.

这段代码:

!foo = true
Run Code Online (Sandbox Code Playgroud)

生成此警告

warning: found = in conditional, should be ==
Run Code Online (Sandbox Code Playgroud)

我会理解,如果这是在一个if或一个unless声明之后发生的,但这不能远离他们(夸大).我意识到我可以使用:

foo = true
!foo
Run Code Online (Sandbox Code Playgroud)

我想,这个警告并不是什么大不了的事,但是Ruby假设我做错了什么,当我没有做错时,有点恼火.


问题:

  • 这是一个错误吗?
  • 警告可以禁用吗?

谢谢!

ruby warnings

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

Rails命名空间错误?

我有这个config/routed.db:

namespace :admin do
  resources :users
  resources :events
end
Run Code Online (Sandbox Code Playgroud)

User使用脚手架Rails提供了生成模型,然后我只使用Rails'生成了一个admin/admin控制器,generate并简单地将所有与用户相关的东西移动到controllers/views/helpers中的admin子目录中.是的,我确实必须添加admin_几个地方,并在表格部分我不得不form_for(@user)改为form_for([:admin, @user]).

当我尝试创建一个新用户(这是我POST的用户数据)时,我收到以下错误消息:

undefined method `user_url' for #<Admin::UsersController:0x13f408e0>
Run Code Online (Sandbox Code Playgroud)

应用程序级跟踪显示此处引发错误:

app/controllers/admin/users_controller.rb:47:in `create'
Run Code Online (Sandbox Code Playgroud)

引发此错误的代码行:

format.html { redirect_to @user, :notice => 'User was successfully created.' }
Run Code Online (Sandbox Code Playgroud)

上面的行在respond_to块内.

所以,我有两个问题:

  1. 我该如何解决这个问题?
  2. 这样做有更智能,更好的轨道方式吗?

此外,如果你建议我用更聪明,更好的轨道方式重新做这个奖励积分!好吧,无论如何我会这样做!:d


更新

哦,我差点忘了可能有用的东西!我也Admin::UsersController继承了Admin::AdminController(通常继承自ApplicationController):

Admin::UsersController < Admin::AdminController

ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2

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