小编Slo*_*vic的帖子

通过factory_girl协会查找或创建记录

我有一个属于一个组的用户模型.组必须具有唯一的名称属性.用户工厂和组工厂定义为:

Factory.define :user do |f|
  f.association :group, :factory => :group
  # ...
end

Factory.define :group do |f|
  f.name "default"
end
Run Code Online (Sandbox Code Playgroud)

创建第一个用户时,也会创建一个新组.当我尝试创建第二个用户时,它失败了,因为它想要再次创建相同的组.

有没有办法告诉factory_girl关联方法首先查看现有记录?

注意:我确实尝试定义一个方法来处理这个,但后来我不能使用f.association.我希望能够在像这样的Cucumber场景中使用它:

Given the following user exists:
  | Email          | Group         |
  | test@email.com | Name: mygroup |
Run Code Online (Sandbox Code Playgroud)

这只有在工厂定义中使用关联时才有效.

ruby cucumber ruby-on-rails-3 factory-bot

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

Rails 3.1提供来自供应商/资产/图像的图像

我试图在我的Rails 3.1应用程序中将一些外部图像(由jQuery插件使用)放到供应商/资产/图像中.问题是,当我尝试这样的事情:

<%= image_tag "ui-bg_flat_75_ffffff_40x100.png" %>
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

No route matches [GET] "/assets/ui-bg_flat_75_ffffff_40x100.png"
Run Code Online (Sandbox Code Playgroud)

我检查了我的Rails.application.config.assets.paths并列出了这些目录:

..../app/assets/images
..../app/assets/javascripts
..../app/assets/stylesheets
..../vendor/assets/images
..../vendor/assets/stylesheets
..../.rvm/gems/ruby-1.9.2-p180@mygems/gems/jquery-rails-1.0.9/vendor/assets/javascripts
Run Code Online (Sandbox Code Playgroud)

如您所见,/ vendor/assets/images列在那里.如果我将我的图像放到app/assets/images,一切正常.

我认为新资产管道应该遍历所有资产目录并在任何地方提供所请求的文件.

有谁知道这里的问题是什么?

ruby-on-rails-3 ruby-on-rails-3.1 asset-pipeline

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

获取使用 resque-scheduler 安排的 Resque 作业

我正在开发一个使用resqueresque-scheduler 来安排电子邮件发送的 rails 应用程序。

有没有办法获得所有预定作业的列表,或者更好的具有特定参数的作业列表?

我已经尝试了一些事情,Resque.schedule但我能得到的最好的是这个哈希:

{"send_email"=>
  {
    "class"=>"EmailSendingJob",
    "args"=>nil,
    "queue"=>"email_queue",
    "description"=>"Runs the perform method in EmailSendingJob"
  }
}
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails resque resque-scheduler

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