小编cau*_*eld的帖子

设置独角兽超时

我用rails 3.0.11,ruby 1.9.3-p0,nginx 1.0.4unicorn 3.6.2我的项目.我有一个问题.我必须在我的服务器上进行长期操作.大约150秒.在这种情况下它没关系.

我已经设置了我的nginx配置 location

proxy_read_timeout 240;
proxy_send_timeout 240;
Run Code Online (Sandbox Code Playgroud)

unicorn.rb使用命令设置我的文件

timeout 240
Run Code Online (Sandbox Code Playgroud)

但我总是得到502 bad gateway错误.我想,独角兽的问题.我得到这个独角兽日志

E, [2012-05-21T11:52:21.052382 #30423] ERROR -- : worker=1 PID:30871 timeout (104.052329915s > 60s), killing
E, [2012-05-21T11:52:21.080378 #30423] ERROR -- : reaped #<Process::Status: pid 30871 SIGKILL (signal 9)> worker=1
I, [2012-05-21T11:52:21.105045 #30423]  INFO -- : worker=1 spawning...
I, [2012-05-21T11:52:21.111148 #894]  INFO -- : worker=1 spawned pid=894   
I, [2012-05-21T11:52:21.111659 #894]  INFO -- : Refreshing …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails unicorn

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

rspec 中的 i18n 翻译

我想将我的测试与内化隔离开来。我使用 rails 3.2.8 和 rspec 2.11.1

我把这段代码 spec/support/translations.rb

module I18nHelpers
  def with_translations(locale, translations)
    I18n.backend.store_translations locale, translations
    yield
  ensure
    I18n.reload!
  end
Run Code Online (Sandbox Code Playgroud)

结尾

RSpec.configure do |config|
  config.include I18nHelpers
end
Run Code Online (Sandbox Code Playgroud)

然后我测试应用程序助手:

describe ApplicationHelper do
  context "messages" do
    it "show body" do
       with_translations :en, navigation: {messages: 'foo'} do
           concat messages_navigation
           assert_test 'span', 'foo'
       end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

但是这个测试随着消息而下降

Failure/Error: assert_select 'span', text: /foo/
     MiniTest::Assertion:
        </foo/> expected but was
        <"Messages">.
Run Code Online (Sandbox Code Playgroud)

“消息”来自我真实的config/locales/en.yml 我从控制台测试 #store_translations 并且它有效。但是当我在 helper 模块中的 wordp I18n.t(translations.key.first)之前放一行时ensure,它显示了旧的翻译。

谢谢你的帮助!

rspec ruby-on-rails internationalization

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

simple_format 和 2+ 换行符(\n)

我正在使用 rails 并且需要显示文本,一行中有 3 个或更多换行符。

我找到了simple_format方法,但它适用于 2,3,4,... 符号相同

两个或多个连续换行符 (\n\n) 被视为一个段落并包裹在 < p > 标签中。

例如,我的文字是

1.9.3p0 :015 > Article.last.text
=> "1\n\n2\n\n\n\n33" 
Run Code Online (Sandbox Code Playgroud)

当我这样做时,<%= simple_format Article.last.text.html_safe %>它会生成这个视图:

<p>1</p>
<p>2</p>
# but i need <br/> or smth else there
<p>3</p>
Run Code Online (Sandbox Code Playgroud)

欢迎其他解决方案,谢谢。

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

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

ActiveRecord对象的Ruby dup方法

有人可以解释一下AR对象的这种行为:

u = User.first
uu = u.dup

uu == u  #=> true
u == uu  #=> false
Run Code Online (Sandbox Code Playgroud)

为什么后者不正确?

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

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