我正在使用Ruby on Rails 3.2.2,我想"轻松"/"快速"地将散列键从Symbols 更改为Strings.也就是说,从{:one => "Value 1", :two => "Value 2", ...}到{"one" => "Value 1", "two" => "Value 2", ...}.
如何通过尽可能少地使用代码来实现?
我正在使用Ruby on Rails v3.2.2.我想解决与使用accepts_nested_attributes_for和validates_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) 我正在使用Ruby on Rails 3.1.0,我想知道如何在YAML文件中正确表示冒号(标点符号).我尝试通过在我的代码中添加以下代码来支持它config/locales/defaults/en.yml file
en
# ':' is the HTML code for ':'
test_key_html: Test value:
Run Code Online (Sandbox Code Playgroud)
在我使用的视图文件中
t('test_key_html')
Run Code Online (Sandbox Code Playgroud)
但它不起作用(在前端内容显示"普通" Test value:文本).
可能吗?如果是这样的话?
我正在使用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_object从array变量中删除"密钥"及其所有内容.
我该怎么做?
注意:当我运行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) 我正在使用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 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
我正在使用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
我正在使用jQuery v1.8.3和jQuery UI v1.9.2.我想通过添加和覆盖一些选项和方法来扩展现有的jQuery UI小部件(在我的情况下是自动完成小部件),但保留其他功能,如官方发行版中的那些.我怎样才能使其成为"适当的"(也许是"标准")方式?
我正在使用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
我使用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 ×7
arrays ×2
hash ×2
javascript ×2
jquery ×2
activerecord ×1
associations ×1
extending ×1
html ×1
jquery-ui ×1
methods ×1
plugins ×1
rspec ×1
testing ×1
validation ×1
yaml ×1