我有一系列的ID
a1 = [1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)
我有另一个对象数组,其中id为随机顺序
a2 = [(obj_with_id_5), (obj_with_id_2), (obj_with_id_1), (obj_with_id_3), (obj_with_id_4)]
Run Code Online (Sandbox Code Playgroud)
现在我需要根据a1中id的顺序对a2进行排序.所以a2现在应该成为:
[(obj_with_id_1), (id_2), (id_3), (id_4), (id_5)]
Run Code Online (Sandbox Code Playgroud)
a1可能是[3,2,5,4,1]或任何顺序,但a2应对应于a1中id的顺序.
我喜欢这个:
a1.each_with_index do |id, idx|
found_idx = a1.find_index { |c| c.id == id }
replace_elem = a2[found_idx]
a2[found_idx] = a2[idx]
a2[idx] = replace_elem
end
Run Code Online (Sandbox Code Playgroud)
但是如果a2的元素顺序正好与a1相反,那么这仍然可能会遇到O(n ^ 2)时间.有人可以告诉我最有效的排序方式吗?
如何正确检查Net :: HTTP :: Get(例如)的响应是否为"成功"(即2xx返回码)?在这个简单的问题上,文档似乎很遗憾.
我有:
response=Net::HTTP.new( host, port ).request my_get_request # details not important
Run Code Online (Sandbox Code Playgroud)
经过一堆谷歌搜索和近乎随机的打字,我终于确定这是有效的:
response.class < Net::HTTPSuccess
Run Code Online (Sandbox Code Playgroud)
这实际上是规范的方式吗?
我总是在我的Rails顶部获得大量代码models.我正在寻找建议,以最好的方式打破标准的Ruby风格.例如,我现在看的一行是:
delegate :occupation, :location, :picture_url, :homepage_url, :headline, :full_name, :to => :profile, :prefix => true, :allow_nil => true
Run Code Online (Sandbox Code Playgroud)
打破这些长方法调用线的传统方式是什么?
在我的Rails应用程序中,我有以下模型:
class Idea < ActiveRecord::Base
belongs_to :user
end
class User < ActiveRecord::Base
has_many :ideas
end
Run Code Online (Sandbox Code Playgroud)
我正在为我的模型创建ActiveAdmin CRUD Idea,其自定义表单看起来像这样:
form do |f|
f.inputs do
f.input :member
f.input :description
end
end
Run Code Online (Sandbox Code Playgroud)
要求是为成员关联的内容提供自定义文本,即"#{last_name}, #{first_name}".是否可以自定义我的成员选择框来实现它?
任何帮助将不胜感激.
例如,对于常量,它是:
THIS_CONSTANT
This_Constant
ThisConstant
或者是其他东西...?
事实上,这整个主题是否有任何(准)官方参考?
我也希望能够快速仔细检查以下问题:
Ruby本身强制执行哪些命名模式(例如,Constants 必须以大写开头,对吧?),这些只是简约(method_names应该是蛇形的,对吗?)?
是否有任何约定如何写一个变量应该在其名称中的类的提醒?("匈牙利符号"或者其他......我的意思是,我有一种印象,如果你觉得有必要在Ruby代码中使用它,那你就是做错了,但无论如何,是否有约定?)
等等...
我正在关注Treehouse上的Ruby教程,并在启动rails服务器时遇到以下错误:
/usr/local/rvm/gems/ruby-1.9.3-p392@global/gems/bundler-1.2.4/lib/bundler/runtime.rb:197: warning: Insecure world writable dir /usr in PATH, mode 040777
/usr/local/rvm/gems/ruby-1.9.3-p392@global/gems/bundler-1.2.4/lib/bundler/runtime.rb:197: warning: Insecure world writable dir /usr in PATH, mode 040777
Run Code Online (Sandbox Code Playgroud)
我尝试用sudo chmod ow/usr/local/fix和其他变种修复它,但遗憾的是,这对我没有任何作用.
即使有这个错误,虽然服务器仍然会启动,一切都会工作正常,但现在我也得到了很多其他错误,服务器甚至不会启动,我认为他们可能会以某种方式连接?
这是我现在得到的错误:
Yass-Bents-MacBook-Pro:treebook yassine$ rails s
/usr/local/rvm/gems/ruby-1.9.3-p392@global/gems/bundler-1.2.4/lib/bundler/runtime.rb:197: warning: Insecure world writable dir /usr in PATH, mode 040777
/usr/local/rvm/gems/ruby-1.9.3-p392@global/gems/bundler-1.2.4/lib/bundler/runtime.rb:197: warning: Insecure world writable dir /usr in PATH, mode 040777
=> Booting WEBrick
=> Rails 3.2.12 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
Exiting
/usr/local/rvm/gems/ruby-1.9.3-p392/gems/activesupport-3.2.12/lib/active_support/dependencies.rb:469:in `load': …Run Code Online (Sandbox Code Playgroud) 我在我的linux系统上在rails 4.0.0上安装ruby,但是我得到这种错误无法将"\ x89"从ASCII-8BIT转换为UTF8 for guides/assets/images/getting_started/routing_error_no_route_matches.png,跳过和许多类似的错误,我在这里读到它不会产生任何影响,但我不明白为什么它会来.有什么指针吗?
我不是一个Ruby dev的交易,但我使用Capistrano进行PHP部署.我正在尝试清理脚本的输出,并尝试添加一个unicode复选标记,如本博客中所述.
问题是如果我这样做:
checkmark = "\u2713"
puts checkmark
Run Code Online (Sandbox Code Playgroud)
它输出"\ u2713"而不是✓
我已经google了,我找不到任何讨论这个的地方.
TLDR:我如何puts或printunicode勾选U-2713?
编辑
我在我的Mac(OSX Lion)上运行Ruby 1.8.7,因此无法使用该encode方法.我的shell是iTerm2中的Bash.
所以我在我的Rails应用程序中使用Heroku Postgres,但我不是在Heroku本身上托管我的应用程序.我在我的database.yml中使用了Heroku的Active Record连接详细信息,它看起来像这样:
development:
adapter: postgresql
encoding: unicode
pool: 5
database: [database]
username: [username]
password: [password]
host: ec2-54-227-243-78.compute-1.amazonaws.com
port: 5432
Run Code Online (Sandbox Code Playgroud)
但是,现在我正在尝试使用db:迁移我的应用程序,以便数据库全部使用我的模型进行设置.运行该命令不会做任何事情,所以我尝试了rake db:reset,我得到了这个:
Couldn't drop df2cokjfj0k4vu : #<PG::Error: FATAL: permission denied for database "postgres"
DETAIL: User does not have CONNECT privilege.
Run Code Online (Sandbox Code Playgroud)
df2cokjfj0k4vu已经存在
- initialize_schema_migrations_table()
- > 1.3997s
- assume_migrated_upto_version(20130924040351,["/ home/action/braindb/db/migrate"])
- > 0.0882s
知道我做错了什么.我还是Rails的新手,所以有时我会忘记在迁移主机时如何正确设置Postgres数据库.
ruby ×10
activeadmin ×1
algorithm ×1
arrays ×1
coding-style ×1
devise ×1
heroku ×1
installation ×1
linux ×1
postgresql ×1
ruby-1.8.7 ×1
rubygems ×1
sorting ×1
string ×1
terminal ×1
unicode ×1
utf-8 ×1