小编Joh*_*ohn的帖子

运行rspec测试时不存在关系

我在我的group_spec.rb文件中有这个:

describe Group do
  it { should have_many(:users) }
end
Run Code Online (Sandbox Code Playgroud)

这在我的user_spec.rb文件中:

describe User do
  it { should belong_to(:group) }
end
Run Code Online (Sandbox Code Playgroud)

当我运行测试时,我得到:

Failure/Error: it { should have_many(:users) }
ActiveRecord::StatementInvalid:
PGError: ERROR:  relation "users" does not exist

   LINE 4:              WHERE a.attrelid = '"users"'::regclass
                                           ^
   :             SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
                 FROM pg_attribute a LEFT JOIN pg_attrdef d
                   ON a.attrelid = d.adrelid AND a.attnum = d.adnum
                WHERE a.attrelid = '"users"'::regclass
                  AND a.attnum > 0 AND NOT a.attisdropped
                ORDER BY a.attnum …
Run Code Online (Sandbox Code Playgroud)

ruby rspec ruby-on-rails

8
推荐指数
1
解决办法
6109
查看次数

如何使用rails在浏览器中查看电子邮件视图

我正在处理我的rails应用程序的电子邮件.现在,我知道查看电子邮件的唯一方法就是将其发送给自己.如何在"views"文件夹下的"notifications"文件夹中获取"daily_summary.html.haml",以便在浏览器中呈现?我在想我应该添加路线:

match 'notifications' => 'notifications/daily_summary'
Run Code Online (Sandbox Code Playgroud)

但后来我不知道如何处理控制器/动作方面的事情.

ruby-on-rails actionmailer

8
推荐指数
3
解决办法
4754
查看次数

创建一个默认为 nil 的 Factory 关联?

使用 FactoryGirl gem,在 factory.rb 文件中,如何创建一个关联默认为 nil 的工厂?

我在想这些事情:

Factory.define :user do |factory|
  factory.association :post
  factory.association :comment, :default => nil
end
Run Code Online (Sandbox Code Playgroud)

那是对的吗?这样做可以吗?

ruby-on-rails factories factory-bot

6
推荐指数
2
解决办法
2311
查看次数

Heroku没有重置数据库

我正在尝试使用以下方法重置heroku上的数据库:

heroku pg:reset SHARED_DATABASE
Run Code Online (Sandbox Code Playgroud)

然后运行:

heroku run rake db:create db:migrate db:seed
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

Validation failed: Email has already been taken
Run Code Online (Sandbox Code Playgroud)

我注意到,进入heroku rails控制台后,用户没有被删除,因此验证失败了.我在这里错过了什么?

ruby-on-rails heroku

6
推荐指数
1
解决办法
3382
查看次数

使用Ruby Gem Spreadsheet合并单元格

如何使用Ruby Spreadsheet gem合并单元格.我想合并工作表第一行的前6个单元格.当我尝试以下操作时,它不起作用:

merge_format = Spreadsheet::Format.new :align => :merge
6.times do |j|
  sheet.row(0).set_format(j,merge_format)
end
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

excel ruby-on-rails spreadsheet

6
推荐指数
1
解决办法
5513
查看次数

在Rails中如何在使用javascript_include_tag之前检查javascript文件是否存在

在rails 3.2应用程序中,我想在将javascript_include_tag包含在文件中之前检查资产管道中是否存在javascript文件.就像是:

<% if javascript_file_exists? %>
  <%= javascript_include_tag "#{controller_name}_controller" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

我想这样做,以便缺少一个javascript文件不会导致错误.有没有办法做到这一点?

ruby-on-rails-3 asset-pipeline

6
推荐指数
4
解决办法
4328
查看次数

修改rails ActiveAdmin gem中的BaseController

我在rails应用程序中使用ActiveAdmin gem.如果我想在适用于所有activeadmin gems的过滤器之前添加一个新的过滤器,我该怎么做?我想我可以在ActiveAdmin中修改BaseController来实现这一点,但是在rails应用程序中进行这种修改的正确方法是什么?有没有办法复制和覆盖BaseController?

ruby-on-rails controllers activeadmin

6
推荐指数
1
解决办法
1621
查看次数

如何在 Rails Console 中输入多行

如何在 Rails 控制台中输入多行代码?

--编辑试图解决的问题--

我正在尝试使用collect方法并想在rails控制台中尝试以下代码:

first_activities_collection = users.collect |user|
  activities = user.activities
  first = activities.first
Run Code Online (Sandbox Code Playgroud)

并且很难让它执行。

我努力了:

first_activities_collection = users.collect |user|
  activities = user.activities;
  first = activities.first;
  end
Run Code Online (Sandbox Code Playgroud)

也许我对 .collect 做错了什么?

ruby-on-rails ruby-on-rails-3

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

使用Ruby Spreadsheet gem,有没有办法让单元格适应内容的大小

如果我使用Ruby Spreadsheet gem将数据从rails应用程序导出到excel,是否有办法获取单元格的大小(宽度和高度)以自动调整内容的大小?

excel ruby-on-rails spreadsheet

4
推荐指数
2
解决办法
3243
查看次数

在ActiveAdmin中显示一列关联的名称

我有两个模型,列表和邀请,与has_and_belongs_to_many相关联.我正在通过ActiveAdmin查看邀请,并希望显示相关列表的名称.我尝试使用以下代码:

ActiveAdmin.register Invitation do
  index do
    column("Listings") { |invitation| invitation.listings.each do |listing|
                          listing.name
                          end
                       }
    default_actions
  end
end
Run Code Online (Sandbox Code Playgroud)

但没有任何表现.我怎样才能让它发挥作用?

ruby-on-rails activeadmin

3
推荐指数
1
解决办法
1682
查看次数