可能重复:
您更喜欢Ruby IDE?
差不多2年前,我一直在大学期间从事大学工作.我刚开始看Ruby on Rails.那么我应该使用什么编辑器?我现在正在使用Notepad ++,但我能以某种方式获得调试等吗?
我正在使用Intridea的Acts作为Readable Rails插件,用于我正在构建的消息传递系统.我已相应地定义了我的消息类:
class Post < ActiveRecord::Base
acts-as-readable
end
Run Code Online (Sandbox Code Playgroud)
一切似乎都按计划运行,但是当我试图让应用程序在我的消息视图中显示未读消息时,我遇到了问题.
他们的例子:(由于格式问题,我将下划线更改为连字符)
bob = User.find_by_name("bob")
bob.readings # => []
Post.find_unread_by(bob) # => [<Post 1>,<Post 2>,<Post 3>...]
Post.find_read_by(bob) # => []
Post.find(1).read_by?(bob) # => false
Post.find(1).read_by!(bob) # => <Reading 1>
Post.find(1).read_by?(bob) # => true
Post.find(1).users_who_read # => [<User bob>]
Post.find_unread_by(bob) # => [<Post 2>,<Post 3>...]
Post.find_read_by(bob) # => [<Post 1>]
bob.readings # => [<Reading 1>]
Run Code Online (Sandbox Code Playgroud)
所以,如果我想列出邮箱中的未读邮件数量(例如收件箱(39)),我应该能够做到这样的事情:
<%= Post.find_unread_by(current-user).count %>
Run Code Online (Sandbox Code Playgroud)
但无济于事.在设置好所有内容之后,我似乎总是陷入简单的视图问题.有任何想法吗?
我正在使用rvm-prompt.似乎解释器,版本,补丁级别和gemset都应该默认显示.
如果我调用提示符,它会准确返回当前的ruby和gemset:
$ rvm-prompt
ruby-1.8.7-p302@rails125
Run Code Online (Sandbox Code Playgroud)
但我的gemset没有反映在我的提示中:
ruby-1.8.7-p302 MacBook:~ subpixel$
Run Code Online (Sandbox Code Playgroud)
我尝试在.bash_profile中显式调用gemset:
PS1="\$(~/.rvm/bin/rvm-prompt i v p g) $PS1"
Run Code Online (Sandbox Code Playgroud)
但它不会改变提示.
我试图做这个页面中显示的ruby示例:http://tomayko.com/writingings/unicorn-is-unix
但我得到的只是
echo.rb:9:in `bind': Address family not supported by protocol family - bind(2) (Errno::EAFNOSUPPORT)
from echo.rb:9:in `<main>'
Run Code Online (Sandbox Code Playgroud)
任何的想法?
我正在使用Ruby on Rails 2.3.8,我有一个从其他两个集合构建的集合,如下所示:
@coll1 = Model1.all
@coll2 = Model2.all
@coll = @coll1 << @coll2
Run Code Online (Sandbox Code Playgroud)
现在,我想按created_at后代顺序按属性对该集合进行排序.所以,我做了以下事情:
@sorted_coll = @coll.sort {|a,b| b.created_at <=> a.created_at}
Run Code Online (Sandbox Code Playgroud)
我有以下例外:
undefined method `created_at' for #<Array:0x5c1d440>
Run Code Online (Sandbox Code Playgroud)
eventhought它存在于那些模型.
任何男生能帮助我吗?
我目前正在处理类似于以下内容的ruby哈希:
{"employee"=>[{"name"=>"john", "level"=>"1", "position"=>"S1"},
{"name"=>"bill", "level"=>"2", "position"=>"S2"}]}
Run Code Online (Sandbox Code Playgroud)
这是员工的两个例子,我需要能够通过价值观将员工拉出来.例如,我想让所有级别== 2的员工,或者所有员工的职位== S1.
我将如何在Ruby中执行此操作?
有没有办法为rails中的字段进行自定义序列化,这是一种在保存字段并加载以从/转换为最终保存在数据库中的字符串时运行的方法.
具体来说,我想做的是有一个类型符号的字段,如性别,可能的值:男性和女性在数据库中存储"男性"和"女性".有一些解决方法,例如:
def gender
read_attribute(:gender).try(:to_sym)
end
Run Code Online (Sandbox Code Playgroud)
但是这使得obj.attributes保持不变,所以它是一个漏洞的抽象.
你能给我一些例子是值得它使用Rubinius的,就像在这个帖子: http://yehudakatz.com/2009/08/31/simplifying-rails-block-helpers-with-a-side-of-rubinius/
例如,单词"stack",我想得到一个类似的数组:
['s', 'st', 'sta', ... 'stack', 't', 'ta', ... , 'c', 'ck', 'k']
Run Code Online (Sandbox Code Playgroud)
我是通过这样的代码做到的:
def split_word(str)
result = []
chas = str.split("")
len = chas.size
(0..len-1).each do |i|
(i..len-1).each do |j|
result.push(chas[i..j].join)
end
end
result.uniq
end
Run Code Online (Sandbox Code Playgroud)
那有更好,更干净的方法吗?谢谢.