小编use*_*154的帖子

记录的Rails:从哪里开始?

我阅读了一些关于使用Rails(2.3.5)设置memcached的教程,我有点迷失了.

这是我需要缓存的内容:我具有存储在db中的用户特定设置.在ApplicationController中查询设置,这意味着每个请求正在运行查询.

我知道Rails内置了对SQL缓存的支持,但缓存只持续一段时间.

我想要一种简单的方法来保持设置(也是ActiveRecord模型)一段任意的时间.如果我还可以在设置更改时随时轻松重置缓存,则可获得奖励积分.

谢谢

ruby activerecord memcached caching ruby-on-rails

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

Rails:运行迁移等rake任务

我的开发团队需要更精确地执行rake任务.某些任务只需在特定代码更改后运行一次.在没有太具体的情况下,在代码中实现新用户的新业务规则之后,需要更新某些现有用户记录.

我们喜欢迁移如何使用db表进行日志记录.是否有类似的工具用于rake任务?我们可以破解Rails'/ ActiveRecord的rake任务迁移系统吗?

我们不希望将与数据库相关的迁移与rake任务混合在一起,因此任何明确保持这些迁移的解决方案都会很棒.

谢谢.

migration rake activerecord ruby-on-rails

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

只从OAuth :: AccessToken获取响应代码,而不是实际响应

在我的User模型中,我有以下代码:

def twitter_client
  OAuth::AccessToken.new(twitter_oauth, self.access_token_key, self.access_token_secret)
end

def twitter_oauth
  OAuth::Consumer.new(Twitter::Login.consumer_key, Twitter::Login.secret, :site => Twitter::Login.site)
end
Run Code Online (Sandbox Code Playgroud)

这样我可以像这样调用User#twitter_client:

current_user.twitter_client.post('/statuses/update.xml', {'status' => 'foooo', 'Accept' => 'application/xml'})
Run Code Online (Sandbox Code Playgroud)

这很好用,实际上会更新状态,并返回以下内容:

#<Net::HTTPOK 200 OK readbody=true>
Run Code Online (Sandbox Code Playgroud)

这对于更新状态确实不是问题.但是,当我想获取最新的推文时,我得到的只是一个响应代码对象,没有来自响应的实际内容:

current_user.twitter_client.get('/statuses/user_timeline.xml', {'Accept' => 'application/xml'})
=> #<Net::HTTPOK 200 OK readbody=true>
Run Code Online (Sandbox Code Playgroud)

此返回的对象只是一个实例,Net::HTTPOK并且不包含推文数据.

我如何获取推文数据?

ruby oauth twitter-oauth

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

Railscasts的"Scratch身份验证"有多安全?

我正在权衡使用"Scratch身份验证"(在此Railscast中实现)与使用Devise的优缺点.

我正在使用自定义数据存储区,因此使用Devise并不像遵循自述文件那么简单.这需要编写一个自定义的ORM adapto r,这远非微不足道.

鉴于这一切,Railscast Auth从头开始似乎更容易实现.

那有多安全呢?

更新:我应该指出我正在使用Parse.com作为我的数据存储区.这意味着它们会处理散列密码并限制用户名的唯一性.

ruby authentication ruby-on-rails devise

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

使用ruby散列作为从较大散列中进行选择的约束

我有一个哈希conditions:

{"age" => "52", "First_Name" => "Bat"}
Run Code Online (Sandbox Code Playgroud)

我有一系列person哈希:

[{"id"=>"1", "First_Name"=>"John", "Last_Name"=>"Doe", "Age"=>"27"}, {"id"=>"2", "First_Name"=>"Jane", "Last_Name"=>"Doe", "Age"=>"26"}, {"id"=>"3", "First_Name"=>"Bat", "Last_Name"=>"Man", "Age"=>"52"}, {"id"=>"4", "First_Name"=>"Bat", "Last_Name"=>"Woman", "Age"=>"51"}]
Run Code Online (Sandbox Code Playgroud)

如何获得person匹配的所有哈希值conditions?(在这种情况下,它应该只返回"蝙蝠侠"哈希.)

ruby hash

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

Rails中的电子邮件 - 如何将演示代码保留在我的模型之外

对于我的Rails应用程序,我们开发了一个半自制的电子邮件系统.我们创建了一个名为Email的模型,然后将其添加到要发送的队列中(使用Web服务).

为了创建模板,我们只是在模型中将字符串拼接在一起,即:

Email < ActiveRecord::Base

   def self.stock_message(recipient)
     email = Email.create do |e|
       e.recipient = recipient
       e.message = String.new
       e.message << "first line <br />"
       e.message << "second line <br />"
     end 
   end

end

#to send:
e = Email.stock_message "foo@bar.baz"
Run Code Online (Sandbox Code Playgroud)

这显然违反了MVC,当我想使用辅助方法格式化字符串时,这确实成为一个问题.如何正确地将视图代码与模型分开?

email activerecord ruby-on-rails

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