Tag: ruby on rails 3.2

如何debuggingRails资源预编译,这是不可耐受的缓慢

我正在开发一个Rails 3.2项目,尽pipe我不认为这个项目很大,但是资产在最近几个月里增加了一些。 资产包括JS(无咖啡剧本)和SASS文件; 我们有不less的图片,但是从早期开始,它们就更less了,所以我不认为它们是一个很重要的因素。 我们可能有大约十几个库,大部分都是小的,最大的是Jquery UI JS。 部署是通过Capistrano完成的,而且开始显而易见,部署到分期的速度明显快于生产。 为了说明,同时避免了有关不同服务器和networking效应的因素,我只需在笔记本电脑上依次运行以下三个命令,如下所示: $ time RAILS_ENV=production bundle exec rake assets:precompile ^Crake aborted! [Note I aborted this run as I felt it was getting stupidly long…] real 52m33.656s user 50m48.993s sys 1m42.165s $ time RAILS_ENV=staging bundle exec rake assets:precompile real 0m41.685s user 0m38.808s sys 0m2.803s $ time RAILS_ENV=development bundle exec […]

在Rails link_to中使用turbolinks

只是想知道是否有一种方法可以直接在rails link_to助手中使用turbolinks,但是一些Google的search没有发现任何值得注意的事情,这里是我尝试过的一些无用的东西。 <%= link_to 'Giraffe', giraffe_path(@giraffe), :data-no-turbolink => 'true' %> <%= link_to 'Giraffe', giraffe_path(@giraffe), :data { :no-turbolink => 'true'} %> 我知道你可以像这样的常规链接 <a data-no-turbolink='true' href="/giraffe-130">Giraffe</a> 现在,我只包含链接元素(如lis或div)上的属性。 提前致谢。

Model.reset_column_information不会在rails迁移中重新加载列

我正在使用Rails 3.2并进行包含代码的迁移: add_column :users, :gift_aid, :integer, :default => 2 # reset columns User.reset_column_information … code here to load legacy data from sqlite3 database … # now create a user with the loaded column data user = User.create( …other cols…, :gift_aid => migrated_gift_aid_column_data, …other cols… ) 运行迁移时会得到unknown attribute: gift_aid 。 User.column_names在调用User.column_names之前和之后显示相同的列表。 奇怪的是,当我手动删除列在MySQL中,并重新运行迁移它按预期工作。 从第一次迁移开始,再次使用一个空的数据库,它不起作用,所以这是运行所有的迁移,而不是单一的迁移。 我有几个以前的用户模型的迁移,都包括reset_column_information和工作正常。 我真的在摸索这个问题 – […]

使用Rails 3.2.11和RSpec发布原始JSON数据

为了确保我的应用程序不易受此漏洞攻击 ,我试图在RSpec中创build一个控制器testing来覆盖它。 为了做到这一点,我需要能够发布原始的JSON,但我似乎没有find办法做到这一点。 在做一些研究的时候,我已经确定至less使用过RAW_POST_DATA标题的方法,但是这似乎不再适用: it "should not be exploitable by using an integer token value" do request.env["CONTENT_TYPE"] = "application/json" request.env["RAW_POST_DATA"] = { token: 0 }.to_json post :reset_password end 当我查看params散列时,token完全没有设置,它只包含{ "controller" => "user", "action" => "reset_password" } 。 在尝试使用XML时,甚至在试图只使用普通的发布数据时,我都会得到相同的结果,在所有情况下,似乎都没有设置这个时间段。 我知道在最近的Rails漏洞中,散列参数的方式发生了变化,但是仍然有办法通过RSpec发布原始数据吗? 我可以以某种方式直接使用Rack::Test::Methods ?

如何让ActiveAdmin使用强参数?

更新:这个问题在ActiveAdmin中已经有了一个解决scheme。 正如Joseph所说,ActiveAdmin文档现在包含了这些信息,但是这里的答案是为使用旧版ActiveAdmin的人提供的。 当Rails 3.2.8中的ActiveAdmin 0.5.0使用strong_parameters 0.1.4时,如果您使用的模型正在使用StrongParameters,包括: include ::ActiveModel::ForbiddenAttributesProtection 那么如果您尝试创build/编辑logging,则会在日志中出现以下错误: ActiveModel::ForbiddenAttributes (ActiveModel::ForbiddenAttributes)

Rails 3.2,RSpec,Factory Girl:NameError:未初始化的常量Factory

我一直在跟随这个入门到Railstesting,我遇到了一个问题,我似乎无法find解决scheme。 我对Rails非常熟悉,但是这是我第一次进入testing阶段。 无论如何,我有一个非常基本的模型testing,甚至没有完全实现,当我尝试运行rspec spec/models/admin_spec.rb 。 我在Admin has a valid factory行(下面的完整代码)中出现以下错误: Admin has a valid factory Failure/Error: Factory.create(:admin).should be_valid NameError: uninitialized constant Factory # ./spec/models/admin_spec.rb:6:in `block (2 levels) in <top (required)>' 我假设FactoryGirl没有被加载出于某种原因,但我觉得它应该被自动加载。 以下是我的Gemfile中的完整代码:/spec/models/admin_spec.rb和/spec/factories/admins.rb 非常感谢您的帮助 的Gemfile source 'https://rubygems.org' gem 'rails', '3.2.2' gem 'mysql2' gem 'jquery-rails' gem 'haml' gem 'bcrypt-ruby', :require => 'bcrypt' gem 'bootstrap-sass', '~> 2.0.2' gem […]

保留与ActiveRecord模型的名称

我非常重视命名,所以我觉得我的ActiveRecord模型的好名字很难。 然而,我经常想出一个名字,它与保留的名字有冲突,无论是在数据库还是Ruby或Rails。 模型或字段名称,如set或group 。 有时候这个问题也不是很明显。 有没有我们不能在我们的模型名称中使用的名称列表和字段名称列表?

如何在rails上添加link_to Ruby的确认消息

我想在link_to函数上添加确认消息。 = link_to 'Reset message', :action=>'reset' ,:confirm=>'Are you sure?' 任何想法,为什么它不工作?

我怎样才能从列表中删除使用轨道控制台的列

使用rails迁移很容易删除列。 class SomeClass < ActiveRecord::Migration def self.up remove_column :table_name, :column_name end end 我想知道是否有任何方式使用控制台从表中删除列。

使用Rails link_to发布链接

我有一个链接,我需要提交一个职位请求。 通常情况下,我会使用jQuery并阻止链接的默认行为,然后将表单提交到目标。 这看起来像Rails应该能够帮助我。 果然, link_to方法有一个指定POST http方法的选项: link_to "Profile", 'http://example.com/profile', method: :post 这有效,但我也需要添加2个参数。 我试过了: link_to "Profile", 'http://example.com/profile', method: post, param1: 'value1', param2: 'value2' 这只是将这些参数添加到<a> HTML元素,但没有提交时点击链接: <a rel="nofollow" param1="value1" param2="value2" data-method="post" href="http://example.com/profile">Profile</a> 有没有办法用参数使用link_to或任何其他Rails方法做POST请求? 我正在使用Rails 3.2.9。