标签: ruby

在Rails/ActiveRecord列名中使用问号字符

为了保持Ruby在布尔方法中使用问号的习惯(例如person.is_smart?),我想对Rails中的ActiveRecord字段做同样的事情:

rails generate model Person is_smart?:boolean
Run Code Online (Sandbox Code Playgroud)

我实际上没有运行上述声明.我假设数据库字段中不能有问号.rails会适当地处理这个吗?简单地从模型中留下问号是最佳做法吗?

使用Rails 3.2.8

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

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

在YAML变量中包含jekyll/liquid模板数据?

我正在使用markdown文件的YAML标题将excerpt变量添加到我可以在其他地方使用的博客帖子中.在其中一个摘录中,我通过降价链接标记引用了早期的博客文章,我使用液体模板数据变量{{ site.url }}代替网站的基本URL.

所以我有类似的东西(有点修剪)

--- 
title: "Decluttering ordination plots in vegan part 2: orditorp()"
status: publish
layout: post
published: true
tags: 
- tag1
- tag2
excerpt: In the [earlier post in this series]({{ site.url }}/2013/01/12/
decluttering-ordination-plots-in-vegan-part-1-ordilabel/ "Decluttering ordination
plots in vegan part 1: ordilabel()") I looked at the `ordilabel()` function
----
Run Code Online (Sandbox Code Playgroud)

但是,jekyll和Maruku md解析器不喜欢这个,这让我怀疑你不能在YAML头中使用液体标记.

是否可以在jekyll处理的页面的YAML标题中使用液体标记?

  1. 如果是,我在示例中做错了什么?
  2. 如果没有允许,谁还能怎么达到什么我打算?我目前正在我的笔记本电脑上开发我的网站,并且不想对基本URL进行硬编码,因为在我准备部署时它必须改变.

我从Maruku得到的错误是:

| Maruku tells you:
+---------------------------------------------------------------------------
| Must quote title
| ---------------------------------------------------------------------------
|  the [earlier post in this …
Run Code Online (Sandbox Code Playgroud)

ruby yaml liquid jekyll

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

在Mac OS X 10.8.2上安装Ruby

我已经提到了安装Ruby on Rails - Mac OS Lion,并关注了Alain Beauvois的回复并得到了很多东西.唯一的区别是我使用1.9.3而不是1.9.2.

我创造了.bash_profile甚至确保它是open -e .bash_profile由Alain Beauvois所说的,甚至添加了这条线.

但现在看来问题是我收到了这个错误:

Error running 'make', please read /usr/local/rvm/log/ruby-1.9.3-p374/make.log
There has been an error while running make. Halting the installation.
Run Code Online (Sandbox Code Playgroud)

引用的日志包含:

[2013-02-02 21:41:52] make
    CC = clang
    LD = ld
    LDSHARED = clang -dynamic -bundle
    CFLAGS = -O3 -ggdb -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Werror=pointer-arith -Werror=write-strings -Werror=declaration-after-statement -Werror=shorten-64-to-32 -Werror=implicit-function-declaration  -pipe 
    XCFLAGS = -include ruby/config.h -include ruby/missing.h -fvisibility=hidden -DRUBY_EXPORT
    CPPFLAGS = -D_XOPEN_SOURCE …
Run Code Online (Sandbox Code Playgroud)

ruby macos installation makefile

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

如何将STDOUT捕获到字符串?

puts "hi"
puts "bye"
Run Code Online (Sandbox Code Playgroud)

我想存储到目前为止的代码的STDOUT(在这种情况下,hi \nbye变成一个变量说'结果'并打印出来)

puts result
Run Code Online (Sandbox Code Playgroud)

我这样做的原因是我已经将R代码集成到我的Ruby代码中,当R代码运行时,其输出被提供给STDOUT,但是在代码内部无法访问输出以进行一些评估.对不起,如果这令人困惑.因此,"放置结果"这一行应该让我高兴和再见.

ruby stdio

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

在Epoch和Back中将Ruby时间戳转换为秒

我的数据库中有一个存储为时间戳的字段,我需要在EPOCH时间内以秒为单位输出.

ruby ruby-on-rails

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

包括鞋子在鞋包中

我在使用适用于Windows的Shoes应用程序中的鞋子时遇到了问题.当我不要求在应用程序中包含Shoes时,打包工具工作正常:我得到一个.exe,如果在无鞋计算机上启动,下载鞋子然后按预期运行.

然而,当我要求它包括鞋子时,包装工人似乎从一开始就陷入困境.至少,在某些其他情况下,打包程序确实生成可执行文件,即使它不包含Shoes.在这里,它只是冻结.

我甚至试过这里提出的解决方案,但我无法管理建筑鞋.克隆rubyinstaller存储库并下载必需元素后,rake命令会过早中止.

ruby windows shoes pack

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

如何在Windows上为Ruby安装sqlite3?

对于Ruby/Rails来说真的很陌生,在本周末我试图自己解决这个问题之后,我试图在这里寻求建议.

我在FreeBSD上完成了一个完整的Ruby/Apache/Passenger设置,我正在尝试完成使用Windows作为Ruby开发环境的任务.

至今:

  • 安装Ruby,v2.0.0p0(2013-02-24)[x64-ming32]
  • 安装了Rails,v.3.2.12
  • 我安装并注册了Ruby dev kit.
  • 我将sqlite3 dll/exe复制到Ruby"bin"文件夹(使用"使用Ruby启动命令提示符"控制台也在我的路径中.)
  • 我可以成功启动rails服务器,并继续使用http://guides.rubyonrails.org/getting_started.html教程3.3.
  • "> rake db:create"告诉我:

    请安装sqlite3适配器:( gem install activerecord-sqlite3-adaptersqlite3不是捆绑包的一部分.将其添加到Gemfile.)

我没有"理解".试图安装activerecord-sqlite3-adapter给我一个"找不到有效的宝石......"

  • "> gem install sqlite3"返回:

    Building native extensions. This could take a while... ERROR: Error installing sqlite3: ERROR: Failed to build gem native extension.

    D:/Development/Ruby200-x64/bin/ruby.exe extconf.rb checking for sqlite3.h... *** extconf.rb failed ***

现在我停留在我甚至不知道我的Ruby on Windows安装的状态的位置.我正在尝试遵循主要的Rails教程并且它没有指定任何这些问题(可能是因为Ruby在Windows上似乎是很多人的自然痛苦.)

我错过了什么?!?我只是想在Windows上为Ruby安装sqlite3,看起来很简单吧?

如果我这样做">rais db"了SQLite shell:

SQLite version 3.7.15.2 2013-01-09 11:53:05

类似问题的步骤无法解决我的问题: 在Windows 7上安装SQLite 3.6

ruby windows sqlite ruby-on-rails

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

Ruby中的失败与提升:我们真的应该相信风格指南吗?

Ruby提供了两种以编程方式引发异常的可能性: raise并且fail都是Kernel方法.根据这些文件,它们完全相同.

出于习惯,我raise到目前为止只使用过.现在我找到了几个建议(例如这里),raise用于捕获异常,以及fail用于不应处理的严重错误.

但它真的有意义吗?当你编写一个类或模块,并在内心深处产生问题时fail,你正在查看代码的编程同事可能会很高兴地了解你的意图,但使用我的代码的人很可能不会看到我的代码,无法知道,异常是由a raise还是by 引起的fail.因此,我谨慎使用raisefail不会对他的决定产生任何影响,无论她是否应该处理.

有人会在我的论点中看到瑕疵吗?还是有其他标准,我可能想用fail而不是raise

ruby coding-style exception conventions

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

如何解冻Ruby中的对象?

在Ruby中,有Object#freeze阻止进一步修改对象:

class Kingdom
  attr_accessor :weather_conditions
end

arendelle = Kingdom.new
arendelle.frozen? # => false
arendelle.weather_conditions = 'in deep, deep, deep, deep snow'
arendelle.freeze
arendelle.frozen? # => true
arendelle.weather_conditions = 'sun is shining'
  # !> RuntimeError: can't modify frozen Kingdom

script = 'Do you want to build a snowman?'.freeze
script[/snowman/] = 'castle of ice'
  # !> RuntimeError: can't modify frozen String
Run Code Online (Sandbox Code Playgroud)

但是,没有Object#unfreeze.有没有办法解冻冻结的王国?

ruby

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

Ruby方式检查字符串是否为空白?

在Ruby(而不是Rails)中的else if条件中检查变量是否为空的最佳方法是什么?

elsif not variable.to_s.empty?
  # do something
end
Run Code Online (Sandbox Code Playgroud)

要么

elsif !variable.to_s.empty?
  # do something
end
Run Code Online (Sandbox Code Playgroud)

要么

elsif variable.to_s.length > 0
  # do something
end
Run Code Online (Sandbox Code Playgroud)

ruby

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