小编Jas*_*Ong的帖子

什么是Rails模块中的mattr_accessor?

我无法在Rails文档中找到这个,但似乎'mattr_accessor'是普通Ruby 类中'attr_accessor'(getter&setter)的模块推论.

例如.在课堂上

class User
  attr_accessor :name

  def set_fullname
    @name = "#{self.first_name} #{self.last_name}"
  end
end
Run Code Online (Sandbox Code Playgroud)

例如.在一个模块中

module Authentication
  mattr_accessor :current_user

  def login
    @current_user = session[:user_id] || nil
  end
end
Run Code Online (Sandbox Code Playgroud)

这个帮助方法由ActiveSupport提供.

ruby module ruby-on-rails class activesupport

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

在Rails中实现gmail样式"撤消"的最佳方法是什么?

我认为重要的是有一个" 撤销 "的方法ALA 的Gmail销毁记录的时候,而不是显示恼人的弹出,上面写着:" 你确定吗? ".

我实现这个的方法是在模型中有一个"deleted_at"时间戳列,当调用destroy方法时,它会被加上时间戳

def destroy
  @foo = Foo.find(params[:id])
  @foo.update_attribute(:deleted_at, Time.now)
  ...
end
Run Code Online (Sandbox Code Playgroud)

恢复/撤消,我只需将同一列设置为nil

def revert
  @foo = Foo.find(params[:id])
  @foo.update_attribute(:deleted_at, nil)
  ...
end
Run Code Online (Sandbox Code Playgroud)

当我调用find方法时,我只需添加一个条件来过滤掉"已删除"的foos.也许设置一个cron或后台任务来在一段时间后真正破坏"已删除"的foos.

适合我,易于实现,但我很好奇是否有更好的方法来实现此功能?也许有一个插件或宝石提供我不知道的?

gmail activerecord ruby-on-rails undo revert

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

脚本在命令行中成功执行,但不是作为cronjob执行

我有一个bash脚本,它运行一个ruby脚本来获取我的twitter提要.

## /home/username/twittercron

#!/bin/bash

cd /home/username/twitter
ruby twitter.rb friends
Run Code Online (Sandbox Code Playgroud)

它在命令行中成功运行.

/home/username/twittercron
Run Code Online (Sandbox Code Playgroud)

但是当我尝试将其作为cronjob运行时,它运行但无法获取提要.

## crontab -e

*/15 * * * * * /home/username/twittercron
Run Code Online (Sandbox Code Playgroud)

该脚本已经是chmod + x.不知道为什么会这样.有任何想法吗?

ruby bash cron

5
推荐指数
2
解决办法
2815
查看次数

标签 统计

ruby ×2

ruby-on-rails ×2

activerecord ×1

activesupport ×1

bash ×1

class ×1

cron ×1

gmail ×1

module ×1

revert ×1

undo ×1