我正在尝试编写一个类似于Rails AactiveRecord模型的Ruby类,其处理方式是:
class Person
attr_accessor :name, :age
# init with Person.new(:name => 'John', :age => 30)
def initialize(attributes={})
attributes.each { |key, val| send("#{key}=", val) if respond_to?("#{key}=") }
@attributes = attributes
end
# read attributes
def attributes
@attributes
end
# update attributes
def attributes=(attributes)
attributes.each do |key, val|
if respond_to?("#{key}=")
send("#{key}=", val)
@attributes[key] = name
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
我的意思是,当我初始化类时,使用相关属性更新"属性"哈希:
>>> p = Person.new(:name => 'John', :age => 30)
>>> p.attributes
=> {:age=>30, :name=>"John"}
>>> p.attributes = { :name => 'charles' …Run Code Online (Sandbox Code Playgroud) 我想在我正在构建的网站中创建一个效果,其中图像被叠加层遮盖.叠加层应该创建一个"淡出"效果 - 我实际上并不想要任何动画效果,但叠加层应该使图像看起来好像它正在渐渐变为边缘处的背景色.
像这样:http://imgur.com/fqtc9.png
我喜欢用CSS/HTML/JS做这个 - 而不是图像.有关从哪里开始的任何想法?谢谢.
我正在寻找一个正则表达式从十进制数中删除尾随零.它应该返回以下结果:
0.0002300 -> 0.00023
10.002300 -> 10.0023
100.0 -> 100
1000 -> 1000
0.0 -> 0
0 -> 0
Run Code Online (Sandbox Code Playgroud)
基本上,如果小数部分为0,它应该删除尾随零和尾随小数点.当它是值时,它也应该返回0.有什么想法吗?谢谢.
哪个版本的rspec-railsgem仍与Rails 2.3分支兼容(特别是2.3.14)?我试过了2.1.0,但那个也是Rails> = 3.0.我应该注意的任何其他依赖项或版本限制?
谢谢.
我开始使用mysql2宝石了.我试图找出一些基本的东西 - 其中之一是如何显式执行事务(对于批处理操作,如多个INSERT/UPDATE查询).
在旧的ruby-mysql,这是我的方法:
client = Mysql.real_connect(...)
inserts = [
"INSERT INTO ...",
"UPDATE .. WHERE id=..",
# etc
]
client.autocommit(false)
inserts.each do |ins|
begin
client.query(ins)
rescue
# handle errors or abort entirely
end
end
client.commit
Run Code Online (Sandbox Code Playgroud)
我在文档中找不到多少 - 如何才能完成同样的工作mysql2?
我有一个应用程序,我需要阻止用户在由其他用户编辑数据时编辑数据.我正在考虑最好的方法,并想要提出想法.到目前为止,我已经创建了一个设置模型,可以在键/值对中存储db上的应用程序范围配置.所以,对于锁,我有一个名为LOCKED_TABLE_UID的设置实例,它存储了编辑表的用户的user_id,如果表是空的,则为null(nil).
>> lock = Setting.find_by_key('LOCKED_TABLE_UID')
Run Code Online (Sandbox Code Playgroud)
然后,我在我的应用程序控制器中实现了2个方法来获取和释放锁:
# current_user returns the user currently logged in
def acquire_lock
lock = Setting.find_by_key("LOCKED_TABLE_UID")
if lock.value
# if lock taken, see if it's the current_user or someone else
if lock.value.to_i == current_user.id.to_i
return true
else
return false
end
else
# lock is free, assign it to this user
lock.value = current_user.id
return true if lock.save
end
end
def release_lock
lock = Setting.find_by_key("LOCKED_TABLE_UID")
if lock.value
# the lock belongs to current_user, so he can release it …Run Code Online (Sandbox Code Playgroud) 我正在尝试挖掘版本控制算法如何对数据进行操作的资源,我对git机制的运行方式特别感兴趣.我意识到git做了很多不同的事情,但特别是我对如何保存和恢复历史感兴趣.我很感激任何人都可以指向的链接或文章参考.谢谢 :)
我想在离线机器上安装RVM - 我可以手动传输所需的任何文件,但是不可能有互联网连接.在尝试下载ruby或其他依赖项(zlib等)的源文件时,不在线会导致RVM崩溃.
我正在寻找一种方法将RVM指向ruby源文件夹的位置,例如rvm install 1.8.7 --source=/path/to/ruby-1.8.7-p330/,或者任何其他依赖项.我已经搜索了rvm文档,但是要么错过了某些东西,要么就是不存在.关于如何完成此安装的任何其他建议也是受欢迎的.谢谢.
我正在将一些现有的Python代码移植到Go。一位负责通过Exchange服务器(SMTP + STARTTLS)发送电子邮件。现有的(简化的)代码如下所示:
import smtplib
client = smtplib.SMTP("exchangeserver.com")
client.starttls()
client.login('user', 'password')
client.sendmail('user@exchangeserver.com',
['otheruser1@exchangeserver.com', 'otheruser2@exchangeserver.com'],
'..message..')
Run Code Online (Sandbox Code Playgroud)
我想对Go执行相同的操作,感谢您的帮助-谢谢。