小编use*_*882的帖子

如何将哈希键从`Symbol`s更改为`String`s?

我正在使用Ruby on Rails 3.2.2,我想"轻松"/"快速"地将散列键从Symbols 更改为Strings.也就是说,从{:one => "Value 1", :two => "Value 2", ...}{"one" => "Value 1", "two" => "Value 2", ...}.

如何通过尽可能少地使用代码来实现?

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

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

验证外键时accept_nested_attributes_for出现问题

我正在使用Ruby on Rails v3.2.2.我想解决与使用accepts_nested_attributes_forvalidates_associatedRoR方法时验证外键有关的问题.也就是说,我有以下模型类:

class Article < ActiveRecord::Base
  has_many :category_associations, :foreign_key => 'category_id'

  accepts_nested_attributes_for :category_associations, :reject_if => lambda { |attributes| attributes[:category_id].blank? }
  validates_associated :category_associations
end

class CategoryAssociation < ActiveRecord::Base
  belongs_to :article, :foreign_key => 'article_id'
  belongs_to :category, :foreign_key => 'category_id'

  validates :article_id, :presence => true
  validates :category_id, :presence => true
end
Run Code Online (Sandbox Code Playgroud)

......我有以下控制器动作:

class ArticlesController < ApplicationController
  def new
    @article = Article.new
    5.times { @article.category_associations.build }

    # ...
  end

 def create
   @article = Article.new(params[:article])

   if @article.save
     # ... …
Run Code Online (Sandbox Code Playgroud)

validation activerecord ruby-on-rails associations

28
推荐指数
2
解决办法
7023
查看次数

怎么可能/我应该在YAML文件中声明冒号(标点符号)?

我正在使用Ruby on Rails 3.1.0,我想知道如何在YAML文件中正确表示冒号(标点符号).我尝试通过在我的代码中添加以下代码来支持它config/locales/defaults/en.yml file

en
  # '&#58;' is the HTML code for ':'
  test_key_html: Test value&#58;
Run Code Online (Sandbox Code Playgroud)

在我使用的视图文件中

t('test_key_html')
Run Code Online (Sandbox Code Playgroud)

但它不起作用(在前端内容显示"普通" Test value&#58;文本).

可能吗?如果是这样的话?

html ruby yaml ruby-on-rails ruby-on-rails-3

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

当'var array = {}'时,如何解决"TypeError:array.splice不是函数"?

可能重复:
如何从javascript对象中删除属性
JavaScript Hashmap等效

我正在使用jQuery,我正在以这种方式处理变量:

var array = {};

array[an_object]      = something
array[another_object] = something_else
array[...]            = ...
Run Code Online (Sandbox Code Playgroud)

当我尝试运行该splice方法时,array我得到一个TypeError: array.splice is not a function.我的意图是an_objectarray变量中删除"密钥"及其所有内容.

我该怎么做?


注意:当我运行console.log(array[an_object])(同样有效another_object和所有其他对象)时,我得到:

[Object { label="str1",  value=1 }, Object { label="str2",  value=2 }, { label="strN",  value=N }]
Run Code Online (Sandbox Code Playgroud)

javascript arrays jquery

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

如何检查哈希是否"完全"包含在另一个哈希中?

我正在使用Ruby on Rails 3.1.0,我想检查散列是否"完全"包含在另一个散列中并返回一个布尔值.

说我有那些哈希:

hash1 = {
  :key1 => 'value1',
  :key2 => 'value2',
  :key3 => 'value3'
}

hash2 = {
  :key1 => 'value1',
  :key2 => 'value2',
  :key3 => 'value3',
  :key4 => 'value4',
  :key5 => 'value5',
  ...
}
Run Code Online (Sandbox Code Playgroud)

我想检查是否hash1包含在hash2即使hash2有更多的值hash1(在上面的情况下,我正在寻找的响应应该是true)?是否可以通过使用"一个唯一的代码行"\"一个Ruby方法"来做到这一点?

ruby methods hash ruby-on-rails ruby-on-rails-3

20
推荐指数
3
解决办法
6232
查看次数

I18n:如何检查翻译键/值对是否缺失?

我正在使用Ruby on Rails 3.1.0和I18n gem.我(正在实现一个插件)我想在运行时检查I18n是否缺少翻译键/值对,如果是,则使用自定义字符串.也就是说,我有:

validates :link_url,
  :format     => {
    :with => REGEX,
    :message  => I18n.t(
      'custom_invalid_format',
      :scope => 'activerecord.errors.messages'
  )
}
Run Code Online (Sandbox Code Playgroud)

如果在.yml文件中没有以下代码

activerecord:
  errors:
    messages:
      custom_invalid_format: This is the test error message 1
Run Code Online (Sandbox Code Playgroud)

我想用This is the test error message 2.可能吗?如果是这样,我该怎么做?

顺便说一句:出于性能原因,建议在运行时检查翻译键/值对是否存在?

ruby ruby-on-rails internationalization ruby-on-rails-3 ruby-on-rails-3.1

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

如何以智能方式从多维数组中"提取"值?

我正在使用Ruby on Rails 3.2.2和Ruby 1.9.2.

鉴于以下多维Array:

[["value1", "value1_other"], ["value2", "value2_other"], ["value3", "value3_other"]]
Run Code Online (Sandbox Code Playgroud)

我想得到(注意:我想"提取"所有"嵌套"的Array第一个值):

["value1", "value2", "value3"]
Run Code Online (Sandbox Code Playgroud)

我怎样才能以聪明的方式做到这一点?

ruby arrays ruby-on-rails multidimensional-array ruby-on-rails-3

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

如何扩展现有的jQuery UI小部件?

我正在使用jQuery v1.8.3和jQuery UI v1.9.2.我想通过添加和覆盖一些选项和方法来扩展现有的jQuery UI小部件(在我的情况下是自动完成小部件),但保留其他功能,如官方发行版中的那些.我怎样才能使其成为"适当的"(也许是"标准")方式?


PS:我搜索在网络上(1,2,...),我发现文件大多涉及到创建一个新的jQuery UI部件而不是扩展现有的一个.

javascript jquery plugins jquery-ui extending

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

使用部分模板文件的i18n gem的麻烦

我正在使用Ruby on Rails 3.1,我想知道如何正确处理与部分模板文件相关的国际化.那是, ...

...在我的app/views/users/flag.html.erb文件中我有:

<%= t('.test_key1') %>
<%= render :partial => "/users/flag_form" %>
Run Code Online (Sandbox Code Playgroud)

...在我的app/views/users/_flag_form.html.erb文件中我有:

<%= t('.test_key2') %>
Run Code Online (Sandbox Code Playgroud)

如果在我的config/locales/views/users/en.yml文件中(注意:我正在组织官方RoR指南中所述的文件)我使用

en:
  users:
    flag:
      test_key1: Test 1 text
      test_key2: Test 2 text
Run Code Online (Sandbox Code Playgroud)

Test 1 text被显示在"主"模板(app/views/users/flag.html.erb),但Test 2 text不是用于部分模板(app/views/users/_flag_form.html.erb).怎么可以\我应该解决这个问题,以便正确显示Test 2 text

ruby ruby-on-rails internationalization ruby-on-rails-3 ruby-on-rails-3.1

10
推荐指数
2
解决办法
6781
查看次数

如何为我的rspec测试加速创建5,000条记录?

我使用Ruby on Rails 3.2.2,FactoryGirl 3.1.0,FactoryGirlRails 3.1.0,Rspec 2.9.0和RspecRails 2.9.0.为了测试我的应用程序,我必须在数据库中创建大量记录(大约5000个),但该操作非常慢(创建记录需要10分钟以上).我这样做:

before(:each) do
  5000.times do
    FactoryGirl.create(:article,)
  end
end
Run Code Online (Sandbox Code Playgroud)

如何改进我的规范代码以便更快?

注意:在每篇文章创建过程之前和之后运行的文章回调可能会导致缓慢,但我可以跳过那些(因为我必须测试的唯一内容是文章而不是关联的模型),如果那些记录的创建缓慢......是否有可能做到这一点,是否是正确的方法?

ruby testing rspec ruby-on-rails ruby-on-rails-3

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