我在我的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) 我正在处理我的rails应用程序的电子邮件.现在,我知道查看电子邮件的唯一方法就是将其发送给自己.如何在"views"文件夹下的"notifications"文件夹中获取"daily_summary.html.haml",以便在浏览器中呈现?我在想我应该添加路线:
match 'notifications' => 'notifications/daily_summary'
Run Code Online (Sandbox Code Playgroud)
但后来我不知道如何处理控制器/动作方面的事情.
使用 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)
那是对的吗?这样做可以吗?
我正在尝试使用以下方法重置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 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)
我究竟做错了什么?
在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文件不会导致错误.有没有办法做到这一点?
我在rails应用程序中使用ActiveAdmin gem.如果我想在适用于所有activeadmin gems的过滤器之前添加一个新的过滤器,我该怎么做?我想我可以在ActiveAdmin中修改BaseController来实现这一点,但是在rails应用程序中进行这种修改的正确方法是什么?有没有办法复制和覆盖BaseController?
如何在 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 Spreadsheet gem将数据从rails应用程序导出到excel,是否有办法获取单元格的大小(宽度和高度)以自动调整内容的大小?
我有两个模型,列表和邀请,与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)
但没有任何表现.我怎样才能让它发挥作用?
activeadmin ×2
excel ×2
spreadsheet ×2
actionmailer ×1
controllers ×1
factories ×1
factory-bot ×1
heroku ×1
rspec ×1
ruby ×1