小编yel*_*ign的帖子

Paperclip Broke中的Default_url与资产管道升级

我正在使用Paperclip并为我的一个附件设置了一个default_url选项:

:default_url => '/images/missing_:style.png'
Run Code Online (Sandbox Code Playgroud)

自从目录移动后,资产管道显然不喜欢这样.处理这个问题的最佳方法是什么?我对这张照片有两种风格(迷你和拇指).

paperclip ruby-on-rails-3 asset-pipeline

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

在Rails中手动清除片段缓存

我正在使用Memcached和Heroku一起使用Rails 3.1应用程序.我有一个错误,错误的东西显示 - 缓存参数不正确.

我有这个:

<% cache("foo_header_cache_#{@user.id}") do %> 
Run Code Online (Sandbox Code Playgroud)

我删除了碎片缓存并推送到Heroku,坏数据消失了.

然后我改为:

<% cache("foo_header_cache_#{@foo.id}") do %> 
Run Code Online (Sandbox Code Playgroud)

但是,当我更正参数时,从@user到@foo,旧的[不正确]缓存版本再次显示(而不是使用正确的数据刷新).

如何手动使此过期,或以其他方式摆脱显示的这些错误数据?

memcached caching ruby-on-rails-3

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

Rails验证用户名中没有空格

我想验证用户名没有白色/空白区域供我的用户使用.是否有内置验证可以做到这一点?或者最好的方法是什么.似乎这是一个非常常见的要求.

ruby ruby-on-rails

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

Rails RSpec测试:nil的未定义方法'deliver':NilClass

我试图测试一个方法是否使用RSpec在我的Rails 3.2中触发电子邮件.它在生产和开发中起作用,我无法让它通过我的测试.

我收到了错误 undefined method 'deliver' for nil:NilClass

# user_spec.rb
it "should send an email if user has weekly email set to true" do
  @user = FactoryGirl.create(:user, user_name: "Jane Doe", email: "jane@gmail.com", weekly_email: true, weekly_article_count: 10)
  Mailer.should_receive(:weekly_email)
  User.send_weekly_email
end

# user.rb
scope :weekly_email, where(:weekly_email => true)
scope :weekly_article_count, :conditions => ["weekly_article_count IS NOT NULL"]

def self.send_weekly_email
  @users = User.weekly_email.weekly_article_count
  @users.each do |user|
    Mailer.weekly_email(user).deliver
  end
end
Run Code Online (Sandbox Code Playgroud)

我也试过使用Mailer.should_receive(:weekly_email).with(user),但后来我收到了错误undefined local variable or method 'user'

rspec ruby-on-rails rspec-rails

11
推荐指数
2
解决办法
3837
查看次数

推动Heroku时Git错误

我正在使用Heroku并拥有一个稳定的Rails应用程序(生产环境),所以我想创建一些新的东西,我可以有质量保证环境,我可以看到这些更改如何在Heroku上运行(以及聚合增强功能)发布)而不总是推送到我的生产应用程序.

所以我做的是创建一个新的Heroku应用程序,并在本地(dev)创建一个新的分支.我的目的是在我测试新的Heroku QA应用程序的更改后将dev合并到本地,然后从我的主分支推送到Heroku生产.

我的方法对我的风景可能不好,我是新手,所以这只是我对如何做到这一点的最佳猜测.

但是当我将我的dev分支推送到我的新QA应用程序时,它可以用于推送到QA应用程序的开发分支,但不是主人.所以我无法在新的QA应用程序上看到(并测试)我的更改.它似乎告诉我,我只能将主分支推送到我的QA应用程序的主人,因为我已经拉了一切,所有东西都已经是最新的,但是我收到了这个错误:

Pushing to git@github.com:foobar/QA.git
To git@github.com:foobar/QA.git
! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:foobar/QA.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Run Code Online (Sandbox Code Playgroud)

有人可以帮我弄清楚我做错了什么 - 无论是我的环境还是Git?谢谢.

git ruby-on-rails heroku ruby-on-rails-3

9
推荐指数
2
解决办法
7451
查看次数

Rails缓存操作不会过期

我在Heroku上尝试在我的Rails应用程序中实现缓存,但是我遇到了一些我不理解的问题.我认为在阅读Rails Guide和Heroku关于缓存策略的文档之后会很容易,但显然做错了.

问题1:操作视图似乎没有过期问题2:当我使用:layout => false时,我的管理员和应用程序布局都被使用(尝试仅获取应用程序布局)

对这个新手的任何帮助将非常感谢!

production.rb(每个heroku文档也安装了dalli)

config.cache_store = :dalli_store
config.action_controller.perform_caching = true (added after reading http://bit.ly/oRKub1)
Run Code Online (Sandbox Code Playgroud)

调节器

layout 'admin'
caches_action :show, :layout => false

def show
  render :layout => 'application'
end

def update
  expire_action :action => :show
end
Run Code Online (Sandbox Code Playgroud)

我尝试通过更改产品来测试过期,但show视图不会过期.因此,当我查看产品的编辑视图时,我没有缓存,我可以看到保存的更改(只是在标题中添加了一个单词),但是当我查看show时,它仍然具有旧信息.

memcached heroku ruby-on-rails-3

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

在Twitter Bootstrap中选择Box Glow Blue

我正在使用Twitter Bootstrap 2.0,我想知道如何更改选择框,以便它们具有与文本框和其他表单元素相同的令人敬畏的蓝色光芒.

现在,除了选择框之外,当我们将焦点放在它们上面时,我所有的表单元素都是蓝色的.我注意到即使在 http://twitter.github.com/ bootstrap/base-css.html#forms上,当我把焦点放在选择框上时,它们会发出橙色,所以也许它还没有内置.有没有其他人不得不处理这个,或知道如何解决它?谢谢!

css twitter-bootstrap

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

在 Rails 中遍历日期

我正在编写一个使用给定开始和结束日期的日期进行迭代的方法,我需要循环中的日期。像这样的东西:

start_date = 2013/03/12
end_date = 2013/11/20

# from start_date to end_date do |f|
  puts date_this_iteration_is_processing
end
Run Code Online (Sandbox Code Playgroud)

有人可以帮我解决这个问题吗?

我已经阅读了这些问题,但它们没有说明如何确定给定迭代的日期。

如何在 Ruby on Rails 中循环遍历月份 在 ruby​​ on Rails 中 迭代日期

ruby ruby-on-rails

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

覆盖reCAPTCHA CSS

我正在使用reCAPTCHA,并且textarea for recaptcha_challenge_field出现在recaptcha框的中间,与其他东西重叠.我发现这是因为这种风格:

.recaptchatable #recaptcha_response_field {
    position: absolute!important;
Run Code Online (Sandbox Code Playgroud)

当我设置positionstatic在Chrome中,它看起来不错.但是,我无法弄清楚如何覆盖该CSS选项.

我试过了:

  • 将此添加到我自己的CSS:

    .recaptchatable #recaptcha_response_field {
         position: static !important;
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 在我的CSS中添加另一个带有名称的条目 .recaptcha_text
    • 通过div类调用它(环绕textarea)
    • 通过p类调用它(包裹textarea)
    • 添加position: static!important;到标准<textarea name="recaptcha_challenge_field" ...>标签

但是,我不能让我的CSS覆盖那个位置:static!important; 随脚本而来:

<script type="text/javascript"
 src="http://www.google.com/recaptcha/api/challenge?k=your_public_key">
</script>
<noscript>
  <iframe src="http://www.google.com/recaptcha/api/noscript?k=your_public_key"
     height="300" width="500" frameborder="0"></iframe><br>
  <textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
  <input type="hidden" name="recaptcha_response_field" value="manual_challenge">
</noscript>
Run Code Online (Sandbox Code Playgroud)

有人可以帮我解决我做错的事吗?谢谢!

css recaptcha

5
推荐指数
1
解决办法
8389
查看次数

使用Rails查询返回单个字段

我遇到的问题应该很容易,但我不知道我做错了什么.我只是尝试执行一个返回单个字段的查询,而不是Rails 3中的完整记录.

模型方法

def self.find_user_username(user_id)
  user_name = User.select("user_name").where(user_id)
  return user_name
end
Run Code Online (Sandbox Code Playgroud)

我正盯着Rails指南(http://guides.rubyonrails.org/active_record_querying.html#selecting-specific-fields),它简单地说(其中viewable_by,locked = fields):

Client.select("viewable_by, locked")
Run Code Online (Sandbox Code Playgroud)

我试过翻转选择,就像这样:

User.select("user_name").where(user_id) - AND - 
User.where(user_id).select("user_name")
Run Code Online (Sandbox Code Playgroud)

但都没有工作.事实上,我甚至尝试过:

user_name = User.select("yoda").where(user_id)
Run Code Online (Sandbox Code Playgroud)

我没有得到错误.当我查看视图时,我在哪里:

Friend.find_user_username(friend.user_id)
Run Code Online (Sandbox Code Playgroud)

我只是不断得到哈希:ActiveRecord :: Relation:0x2f4942f0

mysql hash activerecord ruby-on-rails

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