小编Bac*_*cko的帖子

如何使用I18n gem翻译电子邮件正文?

我正在使用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翻译电子邮件正文?


ruby rubygems ruby-on-rails internationalization ruby-on-rails-3

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

测试"创建"控制器操作的正确方法是什么?

我使用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动作过程中传递一些属性值,而不是像我上面那样继续,但我不喜欢不知道如何制作它,如果它是"正确"/"正确"的制作方式.

那么,测试'创建'控制器动作的正确方法是什么?

ruby controller rspec ruby-on-rails ruby-on-rails-3

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

如何初始化'attr_accessor'属性值?

可能重复:
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

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

如何通过单击框所覆盖的区域外单击关闭jQuery UI模式对话框?

我正在使用jQuery 1.6和jQuery UI.我成功实现了一个模式对话框窗口,其宽度几乎是我的应用程序网页宽度的50%.我想给用户另一种方法来关闭对话框,这样当他点击"模态框"在页面上覆盖的区域外时,这个将被关闭,就像用户点击"标准"一样右上方的"x"按钮.

我怎样才能做到这一点?

javascript jquery jquery-ui modal-dialog

9
推荐指数
3
解决办法
4万
查看次数

卸载RVM时出现问题

我正在运行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)

ruby rubygems uninstall rvm

9
推荐指数
2
解决办法
6898
查看次数

如何改进用```引用所有数组元素的代码并返回一个包含所有引用和逗号分隔元素的字符串?

我正在使用Rails 3.2.2,我想引用所有数组元素'并返回一个包含所有引用和逗号分隔元素的字符串.这时我正在使用

['a', 'b', 'c'].collect {|x| "'#{x}'"}.join(", ")
# => "'a', 'b', 'c'"
Run Code Online (Sandbox Code Playgroud)

但我认为我可以改进上面的代码(可能是通过使用一个未知的Ruby方法,如果它存在).可能吗?

ruby arrays ruby-on-rails collect

9
推荐指数
2
解决办法
5792
查看次数

在我的application.js文件中出现错误"无法找到文件'ckeditor/override'"

我在Ruby on Rails 4应用程序中使用galetahub/ckeditor gem(版本4.0.6).我按照自述文件中的指南进行操作,但是当我//= require ckeditor/overrideapplication.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

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

如何检索网站favicon?

我正在使用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 favicon ruby-on-rails image ruby-on-rails-3

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

如何检查网站上是否找到图像?

我正在使用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 ruby-on-rails image ruby-on-rails-3 web

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

如何处理数据库中的大量记录以供用户授权?

我正在使用Ruby on Rails 3.2.2和MySQL.我想知道在类的数据库表中存储与其实例的每个" 组合 "的两个其他类相关的所有记录是"可取的"/"可取的" .

也就是说,我有UserArticle模特.为了存储所有用户文章授权对象,我想实现一个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)

但是,上述存储所有组合的方法将导致一个包含数十亿数十亿行的大型数据库表!此外,理想情况下,我计划在创建一个或一个对象时创建所有授权记录(也就是说,我计划一次创建所有先前提到的" 组合 ",或者更好地,以"延迟"批次创建...无论如何,这个过程会创建其他数十亿的数据库表行!!!)并在销毁时做出反之亦然(通过删除数十亿数据库表行!!!).此外,我计划在更新或更新对象时立即读取和更新这些行.UserArticleUserArticle

所以,我的怀疑是:

  • 这种方法"可取"/"可取"吗?例如,可能会出现什么样的性能问题?或者,管理/管理具有非常大的数据库表的数据库是一种糟糕的"方式"/"处方"?
  • 我可能/可能/应该如何处理(也许,通过"重新思考"如何以更好的方式处理用户授权)?

注意:我会使用这种方法,因为,为了在检索或对象时检索"授权对象" ,我认为我需要"原子"用户授权规则(即每个用户和文章对象的一个​​用户授权记录),因为系统不是基于"admin","registered"等用户组.因此,我认为表的可用性避免了运行与用户授权相关的方法(注意:这些方法涉及一些可能会使性能恶化的MySQL查询 - 请参阅我之前关于每个检索到的对象的示例"授权"方法实现的问题)通过"简单地"访问/加入表,以便仅检索"用户授权的"对象.UserArticleArticleUserAuthorizationArticleUserAuthorization

ruby mysql sql ruby-on-rails ruby-on-rails-3

7
推荐指数
2
解决办法
851
查看次数