小编Iam*_*ery的帖子

记录更改由特权用户批准; 它就像版本化和批准一样

我要求在对这些更改进行批准之前,对记录的某些属性更改不会反映在用户界面中.此外,如果对approved记录进行了更改,则将向用户呈现之前存在的记录approval.

我的第一次尝试......

是去一个版本的插件,例如paper_trail,acts_as_audited等和添加approved属性的版型.这样做不仅可以让我能够"回滚"记录的版本,而且还应该允许我区分版本是否已被批准.

我一直在努力研究这段思路,我一直遇到的问题是在用户方面.也就是说,我如何查询approved记录集合?我可以(并尝试)编写一些获取记录集合的辅助方法,然后循环遍历它们以查找记录的"已批准"版本.我对此的主要抱怨是数据库命中数量的增长速度有多快.我的下一步尝试是做如下的事情:

Version.
  where(:item_type => MyModel.name, :approved => true).
  group(:item_type).collect do |v|

  # like the 'reify' method of paper_trail
  v.some_method_that_converts_the_version_to_a_record 
end
Run Code Online (Sandbox Code Playgroud)

因此,假设some_method...调用没有访问数据库,我们最终得到了我们感兴趣的数据.我遇到的主要问题是我不能使用这个"finder"作为范围.也就是说,我无法在此查找中添加其他范围以进一步缩小我的结果范围.例如,我的记录也可能cool只有显示记录的范围:cool => true.理想情况下,我想查看我的记录MyModel.approved.cool,但在这里我想我必须得到我的批准模型的集合,然后循环它们cool将导致至少在内存中初始化一堆记录没理由.

我的下一次尝试......

涉及创建一种特殊类型的"待处理记录",它基本上有助于记录的"潜在"变化.因此,在用户端,您可以像往常一样查找任何您想要的内容.每当一个待处理的记录被apply!编辑时,它只会对实际记录进行那些更改,并且一切都很好...... 除了大约30分钟之外,我意识到如果"管理员"希望返回并贡献更多,这一切都会崩溃在批准之前对他的改变.我想我唯一的选择是:

  1. 强制管理员批准所有更改,然后再制作其他更改(这不会很好...也不应该).

  2. 尝试从"待处理记录"模型中读取更改并将其应用于现有记录而不保存.关于这个想法的东西听起来并不是很"正确".

喜欢在这个问题上某人的输入.我已经和它搏斗了一段时间,我似乎无法找到感觉正确的方式.我喜欢生活在"如果它难以理解它,你可能做错了"的口头禅.

这是踢我的尾巴......

activerecord ruby-on-rails

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

在zsh与bash中的`bg`命令之前略有不同

今天我发现了一个奇怪的行为,我希望我可以得到一些方向.

这就是我正在做的......

至少有一个进程已在后台运行,我中断(Ctrl+ Z)前台进程,然后将其放在后台bg.

以下是结果zsh:

$ some-long-running-command
^Z
zsh: suspended  some-long-running-command
$ bg
[2]  - continued  some-long-running-command
$ jobs
[1]  + running    other-command-previously-run
[2]  - running    some-long-running-command
$
Run Code Online (Sandbox Code Playgroud)

以下是它的样子bash:

$ other-command-previously-run &
[1] 12345
$ some-long-running-command
^Z
[2]+  Stopped                 some-long-running-command
$ bg
[2]+ some-long-running-command &
$ jobs
[1]-  Running                 other-command-previously-run &
[2]+  Running                 some-long-running-command &
$ 
Run Code Online (Sandbox Code Playgroud)

那么为什么bash将进程保留在后台bg作为"当前"进程(用"+"表示,如果fg运行则将恢复),同时zsh将"其他"进程设置为当前进程?我找不到任何文件表明行为会有所不同......有趣的是,如果你做了几个fg+ ^Z+ bgin …

bash shell zsh

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

那么Ruby中的RSS(以及Rails!)是怎么回事?

在[rails]项目上工作,我开始玩RSS解析.我注意到那里有很多饲料解析器,不同的人有他们的偏好.当然,我看的第一个地方之一是http://ruby-toolbox.com/categories/rss_feed_pa​​rsing.html.

Feedzirra似乎是我读过的最多的选择,但我注意到它看起来有点陈旧.我不一定有问题.哎呀,如果他把它撞出公园,它就消失了:).

为此,我很快找到了Ruby Standard Library RSS.我的第一个想法是"好吧,如果它内置到图书馆,它可能是我正在寻找的......"我的第二个想法是"垃圾是文件的哪里?"

那么,我从哪里开始呢?我知道,对于一个问题,往往没有石头设定的正确答案,问题的细节可以决定最佳答案......

什么是当前接受的事实RSS解析库?如果它不是库中的构建,为什么?我很想听到想法并获得洞察力......也许我在网上严重忽视了一些信息......

PS我没有错过Ruby RSS.它似乎没有足够的信息......

ruby rss ruby-on-rails feedzirra

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

标签 统计

ruby-on-rails ×2

activerecord ×1

bash ×1

feedzirra ×1

rss ×1

ruby ×1

shell ×1

zsh ×1