小编rom*_*man的帖子

黄瓜步骤定义中没有设计助手

我正在使用黄瓜测试我的rails 3.1应用程序,我正在使用设计进行身份验证.我需要测试当前用户电子邮件是否与授权期间使用的电子邮件相同.问题是黄瓜步骤定义中没有设计助手.

是否有任何解决方案可以在黄瓜步骤定义中使用设计助手?

我试过这个:

Cucumber::Rails::World.send('define_method', 'current_user') do
    @current_user ||= (session[:user] && User.find(session[:user])) || :false
end
Run Code Online (Sandbox Code Playgroud)

但这没有帮助.

cucumber devise

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

设计自定义错误样式

我有以下问题.我正在使用devise作为我的rails 3应用程序的身份验证模块.我已经生成了设计视图来定制它们.问题在于错误消息样式.如果只是把以下

<%= devise_error_messages! %>
Run Code Online (Sandbox Code Playgroud)

我在页面上看到以下标记:

<div id="error_explanation">
  <h2>3 errors prohibited this user from being saved:</h2>
  <ul>
      <li>Email can't be blank</li><li>Password doesn't match confirmation</li>
      <li>Password is too short (minimum is 6 characters)</li>  
  </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

我想使用自己的自定义标记来显示消息.我在设计维基中找不到任何方法来做这件事.我该怎么做?

ruby ruby-on-rails devise

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

使用自定义验证器时RSpec失败

我在rails 3.1项目中使用了这种验证.

validates_presence_of :sales_price
validates_presence_of :retail_price
validates_numericality_of :sales_price, :greater_than => 0,
                          :allow_blank => true
validates_numericality_of :retail_price, :greater_than => 0,
                          :allow_blank => true

validate :sales_price_less_than_retail

def sales_price_less_than_retail
  if sales_price >= retail_price
    errors.add(:sales_price, "must be less than retail price.")
  end
end
Run Code Online (Sandbox Code Playgroud)

我正在使用rspec测试模型.当我只使用rails标准验证助手时,一切都很好.但是当我编写自定义验证器(sales_price_less_than_retail)时,测试开始失败.

这是测试的代码:

it { should validate_presence_of :sales_price }
it { should validate_presence_of :retail_price }
it { should validate_numericality_of :sales_price }
it { should validate_numericality_of :retail_price }
Run Code Online (Sandbox Code Playgroud)

这是工厂:

Factory.define :offer_option do |f|
  f.sales_price          rand(21) + 10  # $10-$30
  f.retail_price         { |a| a.sales_price …
Run Code Online (Sandbox Code Playgroud)

ruby validation rspec ruby-on-rails

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

处理rails应用程序中的rack_throttle异常

当速率限制超出时,如何处理rack-throttle gem生成的错误?现在我得到一个包含以下内容的回复:

Internal Server Error

undefined method `each' for "403 Forbidden (Rate Limit Exceeded)\n":String
Run Code Online (Sandbox Code Playgroud)

这是堆栈跟踪

ERROR NoMethodError: undefined method `each' for "403 Forbidden (Rate Limit Exceeded)\n":String
/home/rkapitonov/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.1/lib/active_record/query_cache.rb:45:in `each'
/home/rkapitonov/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:458:in `each'
/home/rkapitonov/.rvm/gems/ruby-1.9.2-p290/gems/rack-1.3.6/lib/rack/body_proxy.rb:23:in `method_missing'
/home/rkapitonov/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.1/lib/rails/rack/content_length.rb:26:in `call'
/home/rkapitonov/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.1/lib/rails/rack/log_tailer.rb:14:in `call'
/home/rkapitonov/.rvm/gems/ruby-1.9.2-p290/gems/rack-1.3.6/lib/rack/handler/webrick.rb:59:in `service'
/home/rkapitonov/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service'
/home/rkapitonov/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run'
/home/rkapitonov/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread'
Run Code Online (Sandbox Code Playgroud)

如何处理此错误并呈现一些自定义文件或进行重定向?

ruby throttling ruby-on-rails http

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

在没有超级用户的情况下重新启动apache

是否有可能执行正常重启并检查apache配置语法而不是root或具有root权限?

我已经尝试将suid位设置为执行重启的脚本.这是脚本本身:

#!/bin/bash

FILENAME=$1
DATE=`date +%Y%m%d`
DIRECTORY='bckp/'
if [ ! -d "$DIRECTORY" ]; then
    echo "Backup directory doesn't exist. Creating one."
    mkdir $DIRECTORY
fi

if [ -z "$FILENAME" -a ! -f "$FILENAME" ]; then
    FILENAME="webdav.conf"
    echo "No file specified. Backing up webdav.conf"
fi

REV=0
BACKUP="$FILENAME.$DATE.$REV"

while [ -f $BACKUP ]; do
    let REV+=1
    BACKUP="$DIRECTORY$FILENAME.$DATE.$REV"
done

cp $FILENAME $BACKUP

echo $OUTPUT
OUTPUT=$(apache2ctl configtest 2>&1)
if [ "$OUTPUT" == "Syntax OK" ]; then
    echo "Syntax OK"
    echo "Performing restart"
    apachectl …
Run Code Online (Sandbox Code Playgroud)

linux apache permissions bash apache2

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

如何替换循环('float:left','float:right')来使用纯css?

有没有办法替换,cycle('float: left', 'float: right')以便cycle使用纯css类而不是使用帮助器.我需要在一列内左右对齐div.使用循环会导致缓存出现一些困难,因此最好使用静态样式.

<div class="userCards">
    <div class="singleCard <%= cycle 'cardLeft', 'cardRight' %>">
        <!-- content -->
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

注意,userCard有固定的高度,overflow: hiddenwidth: 48%.

html css ruby-on-rails styling

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