小编Dty*_*Dty的帖子

在处于错误状态时,您可以使用Ember Data Models做什么?

我很难理解在以下场景中使用的工作流程:

用户创建模型,我们称之为Product.我们为它们提供了一个表单来填写.由于某些原因除了验证之外的保存错误(超时,访问被拒绝等等)在Ember中,这会使模型进入错误状态.从UI的角度来看,我想要做的就是在屏幕上显示一条消息(简单)并允许用户再次尝试(显然不那么容易).

我已经多次写过它不会重复使用事务.我理解这个的逻辑.对于新产品,我简单地创建另一个新产品,合并来自原始产品(属性,关系)的数据,并用新产品替换我的控制器的内容.虽然可能(希望)有更好的方法,但这并不难,看起来效果很好.

但是,当我编辑产品时,我遇到了一个严重的问题,上述解决方案无效.产品模型现在处于错误状态,我找不到任何方法来获取不同状态的此产品的副本.

我无法弄清楚的是,一旦它遇到错误状态,我可以用这个模型做什么.我尝试过以下方法:

回滚:这不起作用.您无法在错误状态下回滚事务.

重新加载:与上述相同.不允许在错误状态下重新加载记录.

获取记录的新副本:所以我尝试使用与现有记录相同ID的App.Product.find(id).它只是给我一个错误状态的现有记录的副本.

我希望我在这里遗漏一些相当基本的东西.是否可以很好地从错误状态(或无效状态)滚动记录?

如果有一种简单的方法来改变这些模型的状态,我们是否还应该为进一步的提交尝试创建一个新的事务?

ember.js ember-data

21
推荐指数
2
解决办法
3714
查看次数

用于大量文本(和一些html)国际化的rails策略

我正在创建一个英文,中文和韩文网站.某些页面上有大部分布局和文本,例如"关于"页面.此页面将包含许多标题,许多文本段落和一些布局.

我的网站国际化的推荐方法是什么?我见过的所有例子都是针对按钮/链接等的短文本或文本.

我唯一的选择是在我的语言环境yaml文件中拥有大量的键/值对吗?或者有更好的方法吗?目前我的yaml中有一个键/值,键的结尾是_html,所以我可以在键中使用html但是它必须在一行上,因此它非常难看,难以维护且容易出错.

ruby-on-rails internationalization

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

获取当前分支名称以在git命令中使用

我有时想在git命令中使用当前分支名称.例如

git push origin feature/really-long-branch-name
Run Code Online (Sandbox Code Playgroud)

是否有一个git命令只给出分支名称,所以我可以做如下的事情?

git push origin current_branch
Run Code Online (Sandbox Code Playgroud)

git rev-parse --abbrev-ref HEAD,但是那是在这种情况下,究竟是有用的.由于分支名称经常更改,因此设置默认分支也没有用.改变默认行为git push不是我正在寻找的,因为它仍然意味着我第一次输入完整的分支名称push.

编辑:

主持人,这个问题不是骗局,所以请不要因为这个原因而关闭.请仔细阅读我的问题的粗体部分.

git

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

状态机和多个状态

使用传统的状态机定义,状态机记录可以同时处于多个状态吗?例如,如果我有一个User模型,用户可以同时subscriber处于a promotional_period状态和状态吗?

注意,我不是在问这样做是否有意义,我的问题是 - 是否可以使用状态机.

computer-science

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

Heroku rails 3.1 app - 在本地编译资产与在slug编译期间编译资产

我正在Heroku Cedar堆栈上运行rails 3.1 app,它支持资产管道.Heroku 列出了3种编译资产的方法

  1. 在本地编译资产.
  2. 在slug编译期间编译资产.
  3. 在运行时编译资产.

显然#3对性能有害,而Heroku文档也建议不要这样做.但我不确定#1和#2之间哪个更好.

#1要求您运行rake assets:precompilepublic/assets在git中包含您的文件夹.你的slug会更大,但我认为部署网站的停机时间会更短.但更大的段塞大小意味着应用程序启动速度较慢,所以也许这是一个洗牌.

由于在Heroku端进行预编译,#2将使部署更新需要更长的时间.但是,你会有一个较小的slu and,而且管理/记忆的次数较少.

我的问题是 - 哪种选择(#1或#2)最适合生产,为什么?

到目前为止它看起来像选项#2但我想确保我不会忽视某些东西.

ruby ruby-on-rails heroku ruby-on-rails-3 asset-pipeline

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

了解范围和数组中的ruby splat

我想明白之间的差别*(1..9),并[*1..9]

如果我将它们分配给变量,它们的工作方式相同

splat1 = *(1..9)  # splat1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
splat2 = [*1..9]  # splat2 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)

但是,事情变得奇怪,当我尝试使用*(1..9)[*1..9]直接.

*(1..9).map{|a| a.to_s}  # syntax error, unexpected '\n', expecting tCOLON2 or '[' or '.'
[*1..9].map{|a| a.to_s}  # ["1", "2", "3"...]
Run Code Online (Sandbox Code Playgroud)

我猜测问题的一部分是运营商的预测?但我不确定发生了什么.为什么我无法使用*(1..9)我可以使用的相同功能[*1..9]

ruby splat

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

存在控制器内的实例变量

我正在使用rspec 1.3.2测试控制器动作,如下所示:

def action_foo
  ...
  @bar.can_do_something?
  ...
end
Run Code Online (Sandbox Code Playgroud)

我正在尝试存根@bar(假设它是类的实例Bar)实例变量,但我无法.我想如果我有权访问any_instance那么我可以做Bar.any_instance.stub(:can_do_something?)但是我在使用的rspec版本中没有.

还有另一种访问方式和存根@bar吗?以下都不起作用:

@bar.stub(:can_do_something?)
controller.instance_variable_get("@bar").stub(:can_do_something?)
controller.stub_chain(:bar, :can_do_something?)
Bar.new.stub(:can_do_something?)
Run Code Online (Sandbox Code Playgroud)

编辑:

@bar分配在before_filter.就像是@bar = Bar.find(n)

ruby tdd rspec ruby-on-rails

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

如何在使用tmux时保留我的rvm gemset?

我的项目目录中有一个.rvmrc文件(让我们调用它/GameScores).它将加载GameScores我移动到该目录时命名的gemset .这部分工作正常.

但是/GameScores,当我进入tmux时,我的终端不再使用GameScoresgemset.如果我这样做,rvm gemset name我会得到一个空白

知道如何解决这个问题吗?我希望能够在使用tmux时继续使用我的gemset.我目前的解决方法是在rvm gemset use GameScores进入tmux时简单地运行,但我不想每次都这样做.

ruby ruby-on-rails rvm tmux

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

为什么这个数组切片返回一个空数组而不是 nil?

可能的重复:
Ruby 中的数组切片:寻找不合逻辑行为的解释(摘自 Rubykoans.com)

我一直在玩 ruby​​ 中的数组切片,但我不明白下面的最后两个结果:

a = [1,2,3]
a[2,1]      # output is [3]
a[3,1]      # output is []    ...why??
a[4,1]      # output is nil   ...according to the docs this makes sense
Run Code Online (Sandbox Code Playgroud)

为什么a[3,1]a[4,1]nil 时会是一个空数组?

如果有的话,我也希望a[3,1]返回 nil。根据ruby 文档,如果起始索引超出范围,则数组拆分应返回 nil。那么为什么a[3,1]不返回零呢?

注意:这是在 ruby​​ 1.9.2 上

ruby ruby-on-rails

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

ruby中的树和图数据结构

我很难找到在ruby中使用的树数据结构.我可以研究一些众所周知的吗?我的要求很简单.我想创建一个树(或者它可能是一个图形)并找到一些节点之间的距离.例如,我可能有一个如下所示的树/图

     A
   /   \
  B-----C
 / \     \ 
D   E     F
Run Code Online (Sandbox Code Playgroud)

我希望能够找到根节点(A)和所有其他节点之间的距离.所以(A,B)之间的距离应为1,(A,E)之间的距离为2,等等.即使从节点(A)你可以通过(A,B,C)到达(C),长度应该是因为有(A,C)的直接路径,所以仍然只是1.

我可以在ruby中使用树/图形宝石吗?

ruby tree

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