Tag: ruby on rails 3

如何从Carrierwave Uploader对象引用父模型

我希望在通过Carrierwave完成文件上传后运行一些方法。 Carrierwave包含了几个回调方法。 我打算使用:store回调。 这很好,但它需要我在Uploader对象实例中运行回调方法。 这不是世界末日,但我希望将所有逻辑保留在我的父模型中。 我的问题是:我应该如何从上传器引用父模型? 我在文档中没有看到任何明显的东西? 我想我可以做点什么 ParentModel.last.call_my_method_here 但这似乎是一种非常脆弱的编码方式(不期待很多请求,但仍然)。

如果条件vs &&,是否有任何性能提升

如果用户是所有者,我有条件检查说删除和文章。 delete_article if user.owner? 另一种方式是 user.owner? && delete_article 选择其中任何一个或者只是一种写作风格有什么好处

Mongoid has_and_belongs_to_many关联

我试图让mongoid保存联想,但我只能让一方工作。 如果我有以下测试。 test “should add a user as a follower when a user follows the group” do @cali_group.followers = [] @user1.followed_groups << @cali_group assert_equal 1, @user1.followed_groups.count assert_equal 1, @cali_group.followers.count end 哪个失败了,因为@ cali_group.followers是[]。 我已经使用了一段时间,尝试了@cali_group.reload 。 但看起来在我的代码中执行此操作的唯一方法是使用连接的两端,即@cali_group.followers << @user1 。 如果必须的话,我可以在我的代码中这样做。 polco_group和用户的模型如下: https ://gist.github.com/1195048 完整的测试代码在这里: https : //gist.github.com/1195052

尝试访问包含模块中定义的方法时出现NoMethodError

我正试图从我的一个规范助手中的模块中访问一个方法 我将模块包含在测试助手中 module Support class RestHelper include Rest::Rest def create_rest_client_for_ifa # Call method from module create_rest_client(uname, pword) end end end 但是当我运行我的规范时,我不断收到NoMethodError: Failure/Error: @rest_client = Support::RestHelper.create_rest_client_for_ifa NoMethodError: undefined method `create_rest_client’ for Support::RestHelper:Class 这是我的模块代码: module Rest module Rest . . def create_rest_client(uname, pword) # code end . . end end 当我在rails控制台中测试它时似乎工作正常 $ RAILS_ENV=test rails c irb> include […]

如何在ActiveRecord 3.x中获取所有范围列表

我正在使用ActiveRecord和Rails 3。 我在我的模型中定义了范围。 如何获取该模型的所有范围列表? 以前我可以使用Model.scopes 或者我可以检查范围是否已定义? Model.scope_defined?(“scope_name”)类的Model.scope_defined?(“scope_name”) 提前致谢。

Ruby / Rails – 在新窗口中从控制器打开URL

我在我的应用程序控制器中,我有一个url字符串。 如何告诉应用程序在新窗口中打开浏览器中的URL。 有没有办法将目标设置为空白? 例如 def link @url = ‘www.google.com’ ****??? Open @url ?? *** with target blank? end

Rails 3.1引擎迁移不起作用

我正在创建一个带有迁移的rails 3.1引擎。 rake db:migration在该引擎内部和主机应用程序内正常工作。 但是我需要将这个引擎包含在另一个rails引擎中。 第二个引擎包含用于测试的虚拟应用程序,我添加到该虚拟应用程序的application.rb这一行: require ‘my_engine’ 在控制台中,我可以看到第一个引擎的类。 rake -T 给我app:my_engine_engine:安装:迁移任务,但是当我运行这个任务时 rake app:my_engine_engine:install:migrations 我收到这个错误: rake aborted! Don’t know how to build task ‘railties:install:migrations’ Tasks: TOP => app:my_engine_engine:install:migrations (See full trace by running task with –trace) 任何人都可以帮我解决这个问题吗?

动态命名空间控制器在Rails中具有回退function

我对新的Rails应用程序有一些奇怪的要求。 我需要构建一个应用程序,其中所有路由都在多个名称空间中定义(让我解释一下)。 我希望有一个应用程序,其中学校科目(数学,英语等)是名称空间: %w[math english].each do |subject| namespace subject.to_sym do resources :students end end 这很好,它可以工作,但它需要我为每个主题创建一个命名空间的StudentsController ,这意味着如果我添加一个新的主题,那么我需要创建一个新的控制器。 我想要的是创建一个Base::StudentsController ,如果,我想说Math::StudentsController存在然后它将被使用,如果它不存在,那么我们可以动态创建这个控制器并inheritanceBase::StudentsController 。 这是可能的吗? 如果是这样,那么我将如何实施呢?

Rails :: inverse_of和Association扩展

我有以下设置 class Player :player do def in_hand find_all_by_location(‘hand’) end end end class Card :cards end 这意味着以下工作: p = Player.find(:first) c = p.cards[0] p.score # => 2 c.player.score # => 2 p.score += 1 c.player.score # => 3 c.player.score += 2 p.score # => 5 但以下行为方式不同: p = Player.find(:first) c = p.cards.in_hand[0] p.score # => 2 […]

在Active Admin中禁用CSV下载

我正在使用Active Admin gem,我想隐藏或删除每个模型的索引页面上的链接,允许用户以CSV,XML或JSON格式下载数据。 有没有办法做到这一点?