小编Bac*_*cko的帖子

如何防止添加CSS'class'属性

我正在使用Ruby on Rails 3.0.9,jQuery 1.6.2和jQuery UI.我正在尝试按照官方文档实现嵌套选项卡.

当我说出以下内容时(即文档源代码中所述的"正常"\"常用"方式)

<div id="tabs">
  <ul>
    <li>...</li>
  </ul>
</div>

<script>
  $(function() {
    $( "#tabs" ).tabs();
  });
</script>
Run Code Online (Sandbox Code Playgroud)

然后我去显示生成的HTML代码,jQuery UI自动将以下CSS class属性添加到<div id="tabs">:

<div class="ui-tabs ui-widget ui-widget-content ui-corner-all" id="tabs">
  ...
</div>
Run Code Online (Sandbox Code Playgroud)

是否可以防止添加一些CSS classes?如果是这样,怎么办?

css jquery jquery-ui jquery-ui-tabs

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

如何检索'attr_accessor'属性名称?

我正在使用Ruby on Rails 3.0.9,我想检索attr_accessor以特定字符串开头的所有属性名称.那是,

...在我的模块中我有:

attr_accessor :prefix_attribute_name1,
              :prefix_attribute_name2,
              :prefix_attribute_name3,
              ...
              :attribute_name1,
              :attribute_name2,
              ...
Run Code Online (Sandbox Code Playgroud)

我想检索所有attr_accessor与该启动属性名称:prefix的字符串. 我怎样才能做到这一点?

ruby attributes ruby-on-rails attr-accessor ruby-on-rails-3

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

使用Cucumber进行测试的"奇怪"(可能是"极端"或"疯狂")方法

我使用Ruby on Rails 3.2.2,cucumber-rails-1.3.0,rspec-rails-2.8.1,capybara-1.1.2和factory_girl-2.6.3.我有一个方案测试用户注册如下:

Scenario: I register an user
  When I fill in "Name" with "Foo"
  And I fill in "Email" with "foo_bar@email.com"
  And I fill in "Password" with "test_password"
  And I click button "Register"
  Then I should be redirected to the homepage
Run Code Online (Sandbox Code Playgroud)

我试图说明一个新功能(在一个单独的文件中)在哪里实现一个方案,通过使用一个令牌,应该测试注册用户确认过程是否正确完成(注意:实际上,这个过程涉及一个电子邮件消息发布,但我希望测试如果邮件被发送,就忽视它的这个问题).由于我只想测试确认过程,我想实现一个新的功能/场景,在这里陈述类似于Given I am a registered user运行它的东西Scenario: I register an user.

Scenario: I confirm an user
  Given I am a registered user # Here I would like to run the …
Run Code Online (Sandbox Code Playgroud)

ruby testing ruby-on-rails cucumber ruby-on-rails-3

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

如何处理`datetime`值以便将它从`2012-04-27 00:00:00 00改为2012年4月27日?

我正在使用Ruby on Rails v3.2.2,我想显示一个类似的数据<day_number> <month_name> <year_number>.也就是说,我有一个datetime数据库表列,我想,以改变其包含的值,例如2012-04-27 00:00:0027 april 2012.

我该怎么做?

ruby datetime ruby-on-rails date ruby-on-rails-3

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

通过在使用ActiveSupport :: Concern功能时将"嵌套"模块包含为该类的实例方法,如何将方法添加到类中?

我正在使用Ruby 1.9.2和Ruby on Rails v3.2.2 gem.在我之前关于如何在使用Ruby on Rails ActiveSupport :: Concern功能时"嵌套"包含模块的问题之后,我想通过包含"嵌套"模块来了解我应该在哪里声明添加到类的方法这些实例方法那类.也就是说,我有以下内容:

class MyClass < ActiveRecord::Base
  include MyModuleA
end

module MyModuleA
  extend ActiveSupport::Concern

  included do
    include MyModuleB
  end
end

module MyModuleB
  extend ActiveSupport::Concern

  included do
    # def my_method
    #   ...
    # end
  end

  # def my_method
  #   ...
  # end
end
Run Code Online (Sandbox Code Playgroud)

应该def my_method ... end在"身体"/"上下文"/"范围"中说明,MyModuleB或者我应该在included do ... end块中说明?有什么区别,我应该从中得到什么?

ruby methods nested module ruby-on-rails

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

检查数组的每个元素是否包含在另一个数组的一组值中

我正在使用Ruby on Rails 3.0.7,我想检查一个数组的每个元素是否包含在另一个数组中的一组值中.

也就是说,我有这些数组:

array1 = [1,3]
array2 = [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)

我会检查是否array1所有值都存在于array2.如果至少有一个与中的值不同,我应该返回truearray1array2

我如何以Ruby"好"方式编写代码?

PS:我读过这个解决方案,但它适用于Java的数组.

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

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

如何在一个语句中从类对象数组构建哈希

我正在使用Ruby on Rails 3.0.7,我想在一个语句中执行以下操作.

我有一个类对象数组:

# >> articles.inspect
[
  #<Article id: 1,  category_id: 2, ...>,
  #<Article id: 10, category_id: 5, ...>,
  #<Article id: 6,  category_id: 9, ...>,
  #<Article id: 9,  category_id: 3, ...>,
  #<Article ...>
]
Run Code Online (Sandbox Code Playgroud)

我希望(通过使用一个语句 ;即"只有一个代码行")来构建这样的哈希:

{
  "1"   => 2,
  "10"  => 5,
  "6"   => 9,
  "9"   => 3,
  "..." => ...,
}
Run Code Online (Sandbox Code Playgroud)

其中散列键是article.id值,散列值是article.category_id值.

我怎样才能做到这一点?

ruby

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

通过在应用程序启动时启动工作程序来初始化延迟作业gem

我正在使用Ruby on Rails 3.0.9,我正在尝试设置delay_job gem.如果在重新启动Apache2服务器后,我在Terminal\Console中运行以下命令,则一切正常:

RAILS_ENV=development script/delayed_job stop
RAILS_ENV=development script/delayed_job -n 2 start
Run Code Online (Sandbox Code Playgroud)

但是,由于我总是希望在应用程序启动时启动worker,在我config/initializers/delayed_job.rb添加以下代码(处理开发和生产模式):

if Rails.env.development?
  system 'RAILS_ENV=development script/delayed_job stop'
  system 'RAILS_ENV=development script/delayed_job -n 2 start'
elsif Rails.env.production?
  system 'RAILS_ENV=production script/delayed_job stop'
  system 'RAILS_ENV=production script/delayed_job -n 2 start'
end
Run Code Online (Sandbox Code Playgroud)

但是,通过使用上面的代码并在重新启动Apache2服务器之后,DJ gem不再按预期工作.也就是说,当我在Terminal\Console中运行上述命令行时,它不处理作业.

如何让DJ正常工作?问题是什么?

PS:我想这样做是为了使流程自动化.


它接收config/initializers/delayed_job.rb文件中的上述代码不会"创建"与RAILS_ROOT/tmp/pids目录中的DJ相关的"pids"文件.这些只能通过手动运行上述命令行来创建.为什么会这样?


UPDATE@Devin中号

我的config/initializers/delayed_job.rb包含:

# Options
Delayed::Worker.destroy_failed_jobs = false
Delayed::Worker.sleep_delay = 2
Delayed::Worker.max_attempts = 5
Delayed::Worker.max_run_time = 1.hour
Delayed::Worker.delay_jobs = !Rails.env.test?

if Rails.env.development?
  system "RAILS_ENV=development #{Rails.root.join('script','delayed_job')} stop" …
Run Code Online (Sandbox Code Playgroud)

ruby initialization ruby-on-rails delayed-job ruby-on-rails-3

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

在别名实例方法时理解单例类

我正在使用Ruby 1.9.2和Ruby on Rails v3.2.2 gem.我正在尝试以"正确的方式"学习元编程,此时我在RoR 模块提供的块中对实例方法进行别名:included do ... endActiveSupport::Concern

module MyModule
  extend ActiveSupport::Concern

  included do
    # Builds the instance method name.
    my_method_name = build_method_name.to_sym # => :my_method

    # Defines the :my_method instance method in the including class of MyModule.
    define_singleton_method(my_method_name) do |*args|
      # ...
    end

    # Aliases the :my_method instance method in the including class of MyModule.
    singleton_class = class << self; self end
    singleton_class.send(:alias_method, :my_new_method, my_method_name)        
  end
end
Run Code Online (Sandbox Code Playgroud)

"Newbiely"说,通过在Web上搜索,我想出了singleton_class = class << self; …

ruby methods metaprogramming ruby-on-rails definition

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

Turbolinks 5 和 setInterval 问题

我正在将Turbolinks 5Rails 5一起使用,并且我正在设置一个 JS 间隔,以便通过 AJAX 每 10 秒刷新一次页面内容:

<script type="text/javascript">
  $(document).ready(function() {
    function fetchContent() {
      // some AJAX request
    }

    setInterval(fetchContent, 10000);
  });
</script>
Run Code Online (Sandbox Code Playgroud)

当我第一次加载包含上述代码的页面时,它可以工作:fetchContent每 10 秒触发一次。

但是,当我导航到另一个页面时,它fetchContent一直在触发。此外,当我返回该页面(使用浏览器后退按钮)时,fetchContent会不可预测地多次触发。显然,这不是想要的行为。

如何解决这个问题?


注意:要解决这个问题,我知道我可能需要某种clearInterval调用,但是我应该如何使用 Turbolinks 5 进行调用,例如我应该绑定什么事件?从 Turbolinks 5 开始,API 发生了变化。特别是,所有 Turbolinks Classic 事件都已重命名,并且有几个(包括)page:update已被删除,因此我无法使用诸如thisthisthis 之类的解决方案。

ruby-on-rails setinterval turbolinks ruby-on-rails-5 turbolinks-5

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