我正在使用Ruby on Rails 3.1.1,我正在尝试翻译电子邮件正文.我创建/声明了所有必要的"东西"(YAML文件,键/值对,......)以使I18n gem工作:使用默认语言(:en
)发送电子邮件消息没有问题.
然后我添加了一种新语言并完成了所有必须完成的工作,以使I18n gem能够与其他语言一起使用并始终locale=de
在URL中获取参数.
class ApplicationController < ActionController::Base
before_filter :set_locale
def set_locale
if params[:locale] && I18n.available_locales.include?(params[:locale].to_sym)
I18n.locale = params[:locale]
end
end
...
end
Run Code Online (Sandbox Code Playgroud)
但是,当我发送电子邮件时,即使正确设置了区域设置(例如:) locale=de
,发送的电子邮件也不会被翻译(那些仍然使用默认:en
语言).
如何让I18n翻译电子邮件正文?
params
方法......)?有更好的解决方案吗?ruby rubygems ruby-on-rails internationalization ruby-on-rails-3
我使用Ruby on Rails 3.2.2,Rspec 2.9.0和RspecRails 2.9.0.我想测试create
控制器动作,但我不知道如何使"正确"/"正确"的方式.我"搭建"模型,控制器,视图,...文件,所以在那些文件中我有Ruby on Rails生成器生成的公共代码; 在我的spec文件中我有:
it "assigns @article" do
new_article = FactoryGirl.build(:article)
Article.should_receive(:new).and_return(new_article)
post :create
assigns[:article].should eq(new_article)
end
Run Code Online (Sandbox Code Playgroud)
也许,(注意:上面的代码与我用来测试new
控制器动作的代码几乎相同)测试控制器动作的一种更好的方法create
是在post :create
动作过程中传递一些属性值,而不是像我上面那样继续,但我不喜欢不知道如何制作它,如果它是"正确"/"正确"的制作方式.
那么,测试'创建'控制器动作的正确方法是什么?
可能重复:
attr_accessor默认值
我正在使用Ruby on Rails 3.0.9,我想attr_accessor
在我继承的类\ model中初始化一些属性值ActiveRecord::Base
.那是,
...在我的模块中我有:
class User < ActiveRecord::Base
attr_accessor :attribute_name1,
:attribute_name2,
:attribute_name3,
...
end
Run Code Online (Sandbox Code Playgroud)
并且我想设置true
的所有attr_accessor
属性值.我怎样才能做到这一点?
PS:当然我想解决上述问题,接近"Ruby on Rails Way".我知道after_initialize
回调但是通过使用该方法,我应该重复每个attribute_name<N>
语句,我想将值设置true
在该after_initialize
语句中(...这不是 DRY - 不要重复自己).也许有更好的方法来实现这一目标.当您声明这些属性时,有没有办法attr_accessor
"动态" 设置属性值?也就是说,我希望立即声明和设置attr_accessor
属性!
ruby attributes initialization ruby-on-rails ruby-on-rails-3
我正在使用jQuery 1.6和jQuery UI.我成功实现了一个模式对话框窗口,其宽度几乎是我的应用程序网页宽度的50%.我想给用户另一种方法来关闭对话框,这样当他点击"模态框"在页面上覆盖的区域外时,这个将被关闭,就像用户点击"标准"一样右上方的"x"按钮.
我怎样才能做到这一点?
我正在运行Ubuntu 10.04 Lucid,我可能错误地卸载了RVM,现在它接缝不能从系统中完全删除.现在我想再次安装,但我遇到了麻烦.
当我尝试执行某些命令行时,会发生奇怪的输出:
# Note that following command lines don't output the version
# (between the word "version" and the word "is") as it should be.
$ rvm
$ rvm -v
> -bash: /usr/local/rvm/scripts/base: No such file or directory
> A RVM version is installed yet 1.10.3 is loaded.
> Please do one of the following:
> * 'rvm reload'
> * open a new shell
# Even if I use the 'cd' command I have problems...
$ cd …
Run Code Online (Sandbox Code Playgroud) 我正在使用Rails 3.2.2,我想引用所有数组元素'
并返回一个包含所有引用和逗号分隔元素的字符串.这时我正在使用
['a', 'b', 'c'].collect {|x| "'#{x}'"}.join(", ")
# => "'a', 'b', 'c'"
Run Code Online (Sandbox Code Playgroud)
但我认为我可以改进上面的代码(可能是通过使用一个未知的Ruby方法,如果它存在).可能吗?
我在Ruby on Rails 4应用程序中使用galetahub/ckeditor gem(版本4.0.6).我按照自述文件中的指南进行操作,但是当我//= require ckeditor/override
在application.js
文件中添加清单语句时,我收到以下错误:
Sprockets::FileNotFound - couldn't find file 'ckeditor/override'
Run Code Online (Sandbox Code Playgroud)
我的application.js
档案是:
//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require jquery.ui.all
//= require turbolinks
//
//= require ckeditor/override
//= require ckeditor/init
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
注意:由于我不需要使用上传功能,因此我跳过" 如何为商店上传文件生成模型 "中的说明.
我Gemfile
是:
gem 'rails', '4.0.1.rc1'
...
gem 'turbolinks'
gem 'jquery-turbolinks', :git => 'https://github.com/kossnocorp/jquery.turbolinks.git'
gem 'ckeditor'
...
Run Code Online (Sandbox Code Playgroud) ruby-on-rails ckeditor sprockets asset-pipeline ruby-on-rails-4
我正在使用Ruby on Rails v3.0.9,我想检索favicon.ico
我为其设置链接的每个网站的图像.
也就是说,如果在我的应用程序中我设置了http://www.facebook.com/
URL,我想要检索Facebook的图标并在我的网页中使用\ insert.当然,我也想对所有其他网站也这样做.
如何favicon.ico
以" 自动 "方式从网站检索图标("自动"是指在网站中搜索图标并获取其链接 - 我认为不是因为并非所有网站都有一个名为的网站名称'favicon.ico'.我想以"自动"的方式认识到这一点?
PS:我想做的是像Facebook一样在你的Facebook页面中添加链接\ URL:它识别相关的网站徽标,然后将其附加到链接\ URL.
我正在使用Ruby on Rails v3.0.9,我想检查一个图像(在我的情况下是一个favicon.ico
图标图像)是否从网站成功检索到,如果不是,我想显示一个自定义图像.
为了检索favicon.ico
与网站相关的图像,在我的视图文件中,我有:
image_tag "#{web_site.link}/favicon.ico", :size => "16x16"
Run Code Online (Sandbox Code Playgroud)
其中的web_site.link
值类似于以下内容:
http://stackoverflow.com/
http://www.stackoverflow.com/
http://facebook.com/
...
Run Code Online (Sandbox Code Playgroud)
如何检查网站上是否找到图像(可能if ... else ... end
在处理图标图像之前使用语句或执行某些HTTP请求)以及如何处理上述场景?
我正在使用Ruby on Rails 3.2.2和MySQL.我想知道在类的数据库表中存储与其实例的每个" 组合 "的两个其他类相关的所有记录是"可取的"/"可取的" .
也就是说,我有User
和Article
模特.为了存储所有用户文章授权对象,我想实现一个ArticleUserAuthorization
模型,以便给定N个用户和M个文章有N*M个ArticleUserAuthorization
记录.
这样,我可以说明并使用ActiveRecord::Associations
如下:
class Article < ActiveRecord::Base
has_many :user_authorizations, :class_name => 'ArticleUserAuthorization'
has_many :users, :through => :user_authorizations
end
class User < ActiveRecord::Base
has_many :article_authorizations, :class_name => 'ArticleUserAuthorization'
has_many :articles, :through => :article_authorizations
end
Run Code Online (Sandbox Code Playgroud)
但是,上述存储所有组合的方法将导致一个包含数十亿数十亿行的大型数据库表!此外,理想情况下,我计划在创建一个或一个对象时创建所有授权记录(也就是说,我计划一次创建所有先前提到的" 组合 ",或者更好地,以"延迟"批次创建...无论如何,这个过程会创建其他数十亿的数据库表行!!!)并在销毁时做出反之亦然(通过删除数十亿数据库表行!!!).此外,我计划在更新或更新对象时立即读取和更新这些行.User
Article
User
Article
所以,我的怀疑是:
注意:我会使用这种方法,因为,为了在检索或对象时只检索"授权对象" ,我认为我需要"原子"用户授权规则(即每个用户和文章对象的一个用户授权记录),因为系统不是基于"admin","registered"等用户组.因此,我认为表的可用性避免了运行与用户授权相关的方法(注意:这些方法涉及一些可能会使性能恶化的MySQL查询 - 请参阅我之前关于每个检索到的对象的示例"授权"方法实现的问题)通过"简单地"访问/加入表,以便仅检索"用户授权的"对象.User
Article
ArticleUserAuthorization
ArticleUserAuthorization
ruby ×8
image ×2
rubygems ×2
arrays ×1
attributes ×1
ckeditor ×1
collect ×1
controller ×1
favicon ×1
javascript ×1
jquery ×1
jquery-ui ×1
modal-dialog ×1
mysql ×1
rspec ×1
rvm ×1
sprockets ×1
sql ×1
uninstall ×1
web ×1