小编edg*_*ner的帖子

覆盖Rails default_scope

如果我有一个带默认范围的ActiveRecord :: Base模型:

class Foo < ActiveRecord::Base

  default_scope :conditions => ["bar = ?",bar]

end
Run Code Online (Sandbox Code Playgroud)

有没有办法Foo.find 使用这些default_scope条件?换句话说,您可以覆盖默认范围吗?

我原以为在名称中使用'default'会表明它是可以覆盖的,否则会被称为类似的global_scope,对吧?

ruby-on-rails

150
推荐指数
8
解决办法
8万
查看次数

复制文件,在Ruby中根据需要创建目录

假设我有一个文件/source.txt,我想将其复制到/a/b/c.txt./a并且/a/b可以或可以不存在.

有没有办法复制文件,并在必要时创建必要的父目录?

理想情况下,这将是一个命令.特别是,我想避免解析目标路径的文件/目录部分,然后手动调用FileUtils.mkdir_pFileUtils.cp.

纯Ruby是首选,但Rails依赖的解决方案是可以接受的.

ruby

39
推荐指数
1
解决办法
4万
查看次数

在Ruby on Rails中添加新页面

对Ruby on Rails来说还是一个新手,我可能会遇到一个简单的任务.基本上我正在研究同事的应用程序,需要添加一个向用户显示应用程序工作方式的其他页面.我已经编写了HTML和样式.我只是不知道如何将其完全添加到Rails并正确配置路由.任何帮助,将不胜感激!

ruby ruby-on-rails ruby-on-rails-3

30
推荐指数
2
解决办法
4万
查看次数

如何将模块包含到另一个模块中(将AASM代码和自定义状态重构为模块)

我正在尝试重构一个超级脂肪模型,该模型有很多与状态和转换相关的ActsAsStateMachine代码,我希望将它重构为模块调用CallStates.

#in lib/CallStates.rb
module CallStates
    module ClassMethods
        aasm_column :status
        aasm_state :state1
        aasm_state :state2
        aasm_state :state3
    end

    def self.included(base)
        base.send(:include, AASM)
        base.extend(ClassMethods)
    end
end
Run Code Online (Sandbox Code Playgroud)

然后在模型中

include CallStates
Run Code Online (Sandbox Code Playgroud)

我的问题涉及如何将模块行为包含到模块中,以便单个模块可以包含在模型中.我已经尝试过class_eval也无济于事.感谢您对此事的任何深刻见解.

ruby refactoring

27
推荐指数
4
解决办法
3万
查看次数

Ruby中的NameError

对于这段代码:

class myBaseClass
  def funcTest()
    puts "baseClass"
  end
end
myBaseClass.new.funcTest
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

NameError: undefined local variable or method `myBaseClass' for main:Object
from c:/Users/Yurt/Documents/ruby/polymorphismTest.rb:9
from (irb):145:in `eval'
from (irb):145
from c:/Ruby192/bin/irb:12:in `<main>'
irb(main):152:0> x=myBaseClass.new
Run Code Online (Sandbox Code Playgroud)

当我尝试时x=myBaseClass.new,我得到:

NameError: undefined local variable or method `myBaseClass' for main:Object from (irb):152
Run Code Online (Sandbox Code Playgroud)

有人已经遇到过这个问题吗?我不认为我的代码可能是错的.

ruby class

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

在rails应用程序中处理动态css的最佳方法

我正在研究在rails应用程序中处理动态css的问题.在应用程序中,个人用户和/或用户组可以通过CSS实现自定义外观.没有任何固定数量的"外观"或css文件,数量将随着用户和组数量的增长而增长,并且用户通过应用程序的管理界面定义外观.在整个典型的一天中,将提供数千(不是数万)不同的css变体.该应用程序将预先构建的css存储在mongodb中,因此它不必为每个请求支付构建css的代价,问题更多的是如何提供这个动态css内容的最佳方式.我已经看过其他问题,如[这一个] [1],说使用erb或sass,但其中一些答案已经过了几年,所以我想确保Rails 3没有更好的答案.

css ruby-on-rails

18
推荐指数
2
解决办法
8618
查看次数

更高效的Ruby方法将对象数组中的属性映射到另一个数组?

我不会在这里重复我的问题,但是有更有效的方式来写这个吗?

  def recruits_names
    names = []
    for r in self.referrals do
      names << r.display_name
    end

    return names
  end
Run Code Online (Sandbox Code Playgroud)

ruby

18
推荐指数
1
解决办法
3万
查看次数

在这个Ruby示例中,如何限制重试和救援?

在简陋的Ruby书中,提供了使用Rescue和retry的示例,使用以下代码将HTTP标头发送到服务器:

def make_request
  if (@http11)
    self.send('HTTP/1.1')
  else
    self.send('HTTP/1.0')
  end
rescue ProtocolError
  @http11 = false
  retry
end
Run Code Online (Sandbox Code Playgroud)

要限制一个无限循环以防它无法解析,我必须插入什么代码才能重试5次?会是这样的:

5.times { retry }
Run Code Online (Sandbox Code Playgroud)

ruby

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

如何为Hack Assembly语言编写'eq'解释器?

我正在阅读和研究计算系统的元素,但我一度陷入困境.示例章节跳过下面的5条指令可以在这里找到.

无论如何,我正在尝试实现一个虚拟机(或一个字节代码到汇编转换器),但我坚持跳过下一个5指令一点.

您可以在此处找到装配符号.

目标是实现将特定字节代码转换为此汇编代码的转换器.

我成功完成的一个例子是字节码

push constant 5
Run Code Online (Sandbox Code Playgroud)

这被翻译成:

@5
D=A
@256
M=D
Run Code Online (Sandbox Code Playgroud)

正如我所说,Hack的汇编语言可以在我提供的链接中找到,但基本上是:

@5  // Load constant 5 to Register A
D=A // Assign the value in Reg A to Reg D
@256// Load constant 256 to Register A
M=D // Store the value found in Register D to Memory Location[A]
Run Code Online (Sandbox Code Playgroud)

嗯这很直接.根据定义,存储器位置256是堆栈的顶部.所以

push constant 5
push constant 98
Run Code Online (Sandbox Code Playgroud)

将被翻译为:

@5
D=A
@256
M=D
@98
D=A
@257
M=D
Run Code Online (Sandbox Code Playgroud)

这一切都很好..

我还想再举一个例子:

push constant 5
push …
Run Code Online (Sandbox Code Playgroud)

algorithm assembly interpreter bytecode nand2tetris

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

Elixir在线IDE /游乐场网站

是否有任何网站允许测试Elixir片段,保存它们并分享如下:

我找到类似的东西:http: //www.tryerlang.org/http://try-elixir.herokuapp.com/但他们不允许共享代码,第二次使用Elixir v0.10.2.

elixir

15
推荐指数
2
解决办法
4879
查看次数