Rails 4中的“Factory not registered”错误

我在Rails 4中使用Factory Girl获得了“Factory not registered”错误。这是我在spec / factories / user.rb中为一个简单的Devise用户定义的工厂: FactoryGirl.define do factory :user do email ‘test@example.com’ password ‘foobar’ password_confirmation ‘foobar’ end end 这是spec_helper.rb: ENV[“RAILS_ENV”] ||= ‘test’ require File.expand_path(“../../config/environment”, __FILE__) require ‘rspec/rails’ require ’email_spec’ require ‘rspec/autorun’ require ‘factory_girl’ Dir[Rails.root.join(“spec/support/**/*.rb”)].each { |f| require f } ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration) RSpec.configure do |config| config.include(EmailSpec::Helpers) config.include(EmailSpec::Matchers) config.fixture_path = “#{::Rails.root}/spec/fixtures” config.use_transactional_fixtures […]

试图在现有的mysql db上构建rails 3.2 app

我试图弄清楚如何在现有的mysql数据库之上构建一个rails应用程序。 我认为最好的方法就是创建一个与现有数据库布局相同的迁移,但我不太清楚如何做到这一点,然后连接它。 我知道这篇文章使用现有的Mysql数据库构建Ruby on Rails应用程序 但我仍然不确定; 我只是这样做,但我需要的列? 此问题的主要答案是说我应该将我的数据库设为csv然后导入它,是否有人有他们推荐的教程或gem?

Rails 4:未定义的方法`asset_path’

我试图在我的控制器中使用asset_path来生成放置在我的assets/data/目录中的pdf的路径。 这在Rails 4中已经过时了吗? 这是我的控制器代码抛出错误: def beg_1 File.open(asset_path(“ee-beg-1.pdf”), ‘r’) do |f| send_data f.read.force_encoding(‘BINARY’), :filename => “ee-beg-1.pdf”, :type => “application/pdf” end end

编辑表单删除数据库中的记录

我有一个嵌套的表单,可以很好地保存数据库的内容。 唯一的问题是,当我单击编辑时,“grand-child”字段将从数据库中删除,因此我必须重新输入该字段上的所有内容。 正常行为是编辑应存在的先前内容。 我正在使用gem cocoon simple_forms用于我的表单的嵌套表单simple_forms和用于ckeditor编辑的ckeditor 。 这是我单击编辑时的服务器日志:通知: SQL (0.3ms) DELETE FROM “responses” WHERE “responses”.”id” = $1 [[“id”, 53]]每次我点击编辑时都会发生进入考试模型。 另请注意,问题已选中但未删除。 很奇怪。 Started GET “/exams/24/edit” for 127.0.0.1 at 2015-11-09 16:59:40 +0300 Processing by ExamsController#edit as HTML Parameters: {“id”=>”24”} Exam Load (0.8ms) SELECT “exams”.* FROM “exams” WHERE “exams”.”id” = $1 LIMIT 1 [[“id”, 24]] Question Load (0.4ms) […]

Rails Puma用完了Redis连接

我已经在SO上查看了其他类似的问题但是不能很好地将事情拼凑在一起。 我有一个Rails应用程序(在Heroku上),它使用Puma同时具有多个进程和多个线程。 我的应用程序还使用Redis作为辅助数据存储(除了SQL数据库),直接查询Redis(通过connection_pool gem)。 这是我的Puma配置文件: workers Integer(ENV[“WEB_CONCURRENCY”] || 4) threads_count = Integer(ENV[“MAX_THREADS”] || 5) threads threads_count, threads_count preload_app! rackup DefaultRackup port ENV[“PORT”] || 3000 environment ENV[“RACK_ENV”] || “development” on_worker_boot do # Worker specific setup for Rails 4.1+ ActiveRecord::Base.establish_connection redis_connections_per_process = Integer(ENV[“REDIS_CONNS_PER_PROCESS”] || 5) $redis = ConnectionPool.new(size: redis_connections_per_process) do Redis.new(url: ENV[“REDIS_URL”] || “redis://localhost:6379/0”) end end 我的Redis实例的连接限制为20,我发现自己经常超过这个限制,尽管应该是(据我所知)每个进程只有5个连接分布在4个工作进程中。 […]

Ubuntu虚拟环境上的自动测试通知

我无法让Rails自动测试通知在Engine Yard Vagrant环境中工作。 在Mac上,我通常通过Growl收到通知。 但是,在运行Ubuntu的虚拟环境中不起作用。 我尝试运行Linux通知设置,如libnotify + autotest-notification,但是我收到以下错误: libnotify-Message: Unable to get session bus: /bin/dbus-launch terminated abnormally with the following error: Autolaunch error: X11 initialization failed. ** (notify-send:1004): CRITICAL **: dbus_g_proxy_connect_signal: assertion `DBUS_IS_G_PROXY (proxy)’ failed ** (notify-send:1004): CRITICAL **: dbus_g_proxy_connect_signal: assertion `DBUS_IS_G_PROXY (proxy)’ failed ** (notify-send:1004): CRITICAL **: dbus_g_proxy_call: assertion `DBUS_IS_G_PROXY (proxy)’ failed 另一条路径是让Growl远程接收通知,但我甚至不知道从哪里开始…… 有什么建议?

我可以使用Paperclip在rails中发表评论吗?

我希望用户能够使用Paperclip支持的图像或gif评论post。 我怎样才能实现这一目标? 它可以与acts_as_commentable一起使用吗?

错误:缺少表“self”的FROM子句条目(Rails 4 Active Record事务,postgresql 9.4))

在创建模型交易时,我使用after_create在DealPrize表上创建奖品。 Deal和DealPrize属于/ has_many关系:a Deal有许多Deal奖品,Dealprize属于Deal。 它的工作方式如下:在Deal中,我有一个列’prize-number’,我使用了after_create,以便amdin创建一个新的交易evetytime,应用程序获取此prize_number列,并创建此批量的奖品(插入尽可能多的行必要时)在DealPrize表中。 我无法在postgresql查询中使用我的Rails app moel变量。 这是一个有效的查询( 使用数字代替变量 )。 它将它写在我的数据库上。 model deals.rb CONNEXION = ActiveRecord::Base.connection def create_prizes Deal.transaction do self.120000.times do |i| CONNEXION.execute “INSERT INTO deal_prizes (deal_id, created_at, updated_at) values ( 62, ‘2009-01-23 20:21:13’, ‘2009-01-23 20:21:13’)” end end end 但是,当我按照应变量替换示例值时,我得到一个错误。 CONNEXION = ActiveRecord::Base.connection def create_prizes Deal.transaction do self.120000.times do |i| CONNEXION.execute “INSERT INTO […]

单击#new&#edit时如何停止NoMethodError?

我很难弄清楚如何将多个控制器的逻辑合并到侧边栏中。 例如,我想在侧边栏中有一个部分,它使用@habits逻辑和一个使用来自goals_controller的@unaccomplished_goals逻辑的部分。 对于这个问题,我们只关注@unaccomplished_goals 。 在应用程序的侧边栏中正确显示,它来自goals_controller #index @top_3_goals = @unaccomplished_goals.top_3 但是如果我点击链接目标/ new或目标/ 1 /编辑我得到可怕的: undefined method each for nil:NilClass ! 这是一个视图细分: 我在views/layouts/application.html.erb使用来抓取views/sidebar/_sidebar.html.erb ,以便使用来抓住views/goals/_upcoming.html.erb 意见/目标/ _upcoming.html.erb 视图/侧边栏/ _sidebar.html.erb Upcoming 目标控制器 def index if params[:tag] @goals = Goal.tagged_with(params[:tag]) else @goals = Goal.all.order(“deadline”) @accomplished_goals = current_user.goals.accomplished @unaccomplished_goals = current_user.goals.unaccomplished @top_3_goals = @unaccomplished_goals.top_3 end end 目标模型 class Goal { where(accomplished: […]

wicked_pdf创建本地文件的超链接

我不想创建一个PDF文档,其中包含指向本地文件的超链接。 例如,下载PDF时,以及一些文件,PDF包含指向这些文件的超链接。 这有可能实现,如果是,如何实现?