小编pet*_*hka的帖子

Rspec,Rails:如何测试控制器的私有方法?

我有控制器:

class AccountController < ApplicationController
  def index
  end

  private
  def current_account
    @current_account ||= current_user.account
  end
end
Run Code Online (Sandbox Code Playgroud)

如何current_account使用rspec 测试私有方法?

PS我使用Rspec2和Ruby on Rails 3

rspec ruby-on-rails

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

Ruby on rails:奇异资源和form_for

我希望用户只使用一个连接到用户会话的订单.所以我为订单设置了奇异的资源

routes.rb中:

resource :order
Run Code Online (Sandbox Code Playgroud)

意见/命令/ new.html.erb:

<%= form_for @order do |f| %>
   ...
<% end %>
Run Code Online (Sandbox Code Playgroud)

但是当我打开新的订单页面时,我收到一个错误:

undefined method `orders_path`
Run Code Online (Sandbox Code Playgroud)

我知道,我可以设置:url => order_pathform_for,但什么是解决这一冲突的真正方法是什么?

resources router ruby-on-rails form-for singular

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

Rspec:如何测试文件操作和文件内容

在我的应用程序中我有这样的代码:

File.open "filename", "w" do |file|
  file.write("text")
end
Run Code Online (Sandbox Code Playgroud)

我想通过rspec测试这段代码.这样做的最佳做法是什么?

ruby testing file-io rspec file

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

城市识别是否有ISO标准?

我想通过API提供服务,通过一些id提供有关城市(在任何国家/地区)的一些信息.

我应该选择什么作为城市的身份证?是否存在城市识别的ISO标准?如果是这样,我可以在哪里获得城市ID列表?

iso identifier city

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

Ruby,Rails:mysql2 gem,有人使用这个gem吗?它稳定吗?

我发现 mysql2 gem.它适用于ruby 1.9和utf8编码(与mysql gem相反).

但我怀疑.有人在生产中使用这个宝石吗?性能测试怎么样?它比mysql gem快吗?它稳定吗?

ruby mysql ruby-on-rails

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

RESTful URL:我应该在哪里放置语言环境?example.com/en/page vs example.com/page?locale=en

我正在决定如何组织URL并将语言环境放入其中.我有两个选择:

  1. example.com/en/page
  2. example.com/page?locale=en - Google方式
  3. en.example.com/page - 不好,因为我正在使用子域名

从一侧example.com/en/page看起来更好,更紧凑example.com/page?locale=en.从另一方面,我们有两个URL example.com/en/page,example.com/ru/page一个资源有两个表示.当然,如果example.com/page?locale=en我们的一个资源也有两个URL,但根据我的口味它稍微有点REST.

什么是最佳做法?你在用什么?为什么?

rest url locale path

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

在重新启动期间,使用https站点将证书密码传递给Nginx

https通过ansible配置了nginx安装和配置(以及为站点设置SSL证书).SSL证书使用密码短语.

我想写一个重启nginx的ansilbe任务.问题是如下.

通常情况下,内部有https站点的nginx会PEM pass phrase在重启时询问.Ansible在执行playbook期间不要求该密码短语.

解决方案将解密的证书和密钥存储在某个私人目录中.但我真的不想把我的证书和密钥留在未加密的地方.

如何通过重启期间将密码传递给nginx(或openssl)ansible?完美的场景如下:

  1. Ansible要求提供SSL密码(通过vars_promt).另一种选择是使用安全保险库.
  2. Ansible正在重启nginx,当nginx要求时PEM pass phrase,ansible将密码传递给nginx.

可能吗?

https openssl nginx ssl-certificate ansible

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

Rails:如何使用params的范围并使用params的默认值的路由

我在routes.rb中有这样的行:

scope "/:subdomain/" do
  resource :order, :only => [:new, :create, :show, :update, :edit, :destroy] do
    get   :cancel,    :on => :member 
    put   :counter,   :on => :member 
  end
end
Run Code Online (Sandbox Code Playgroud)

例如,这是典型的网址:http://mydomain.com/some_subdomain/order/new.此url映射到具有params [:subdomain] ="some_subdomain"的订单控制器的新操作.我想使用命名路由new_order_url(:subdomain =>"some_subdomain").

但我想将http://mydomain.com/order/new映射到订单控制器,动作新的和params [:subdomain] ="default".我想为这样的url使用命名路由new_order_url.

这样做的最佳做法是什么?

default routes ruby-on-rails

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

如何从Rails 3中的ActionMailer发送已签名的电子邮件?

使用Rails 3我想使用X.509证书来签署部分电子邮件.在如何从ActionMailer发送签名电子邮件的 Rails 2中有一个当前存在的答案但它不适用于Rails 3.

是否可以通过Rails 3中的ActionMailer签署电子邮件?如果无法做到这一点,是否可以在ActionMailer创建后通过sendmail签署电子邮件?

ruby email ruby-on-rails actionmailer x509

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

Rails:如何测试state_machine?

请帮我.我糊涂了.我知道如何编写模型的状态驱动行为,但我不知道我应该在规范中写什么...

我的model.rb文件看

class Ratification < ActiveRecord::Base
  belongs_to :user

  attr_protected :status_events

  state_machine :status, :initial => :boss do
    state :boss
    state :owner
    state :declarant
    state :done

    event :approve do
      transition :boss => :owner, :owner => :done
    end

    event :divert do
      transition [:boss, :owner] => :declarant
    end

    event :repeat do
      transition :declarant => :boss
    end

  end
end
Run Code Online (Sandbox Code Playgroud)

我使用 state_machine gem.

拜托,告诉我课程.

rspec ruby-on-rails state-machine

17
推荐指数
2
解决办法
6791
查看次数