我有一个我想为其设置管理用户的Rails应用程序。
当我在本地计算机上执行此操作时,我只是进入控制台并进行设置User.admin = true,然后保存了记录。
现在,我在Heroku上安装了我的应用程序,并尝试使用以下命令提取数据库:
heroku pg:pull HEROKU_POSTGRESQL_quotes_app mylocaldb --app quotesappp
Run Code Online (Sandbox Code Playgroud)
在这种情况下,quotesapp是我的数据库,quotesappp是我在Heroku上的应用程序名称。当我这样做时,会遇到以下错误:
Unknown database: HEROKU_POSTGRESQL_quotes_app. Valid options are: DATABASE_URL
Run Code Online (Sandbox Code Playgroud)
我从正在生产的yml文件中获得了数据库名称quotesapp。
database.yml:
production:
<<: *default
database: quotes_app
Run Code Online (Sandbox Code Playgroud)
我的想法是将数据库拉到本地,设置管理员用户,然后将其推回生产环境。有人看到我为什么得到这个错误吗?还是可以建议一种更好的方法?
我试图删除数组中的元素,如果它的索引大于某个值.我希望做这样的事情:
a = ["a", "b", "c"]
b = a.delete_if {|x| x.index > 1 }
Run Code Online (Sandbox Code Playgroud)
我在接过来一看drop,delete_if等我试图完成这个使用each_with_index是这样的:
new_arr = []
a.each_with_index do |obj, index|
if index > 1
obj.delete
end
new_arry << obj
end
Run Code Online (Sandbox Code Playgroud)
如果数组元素的数组位置大于某个值,我怎么能删除它?
我尝试在部署之前使用以下命令预编译我的图像:
$ RAILS_ENV=production bin/rake assets:precompile
我正在使用image_tag我的模板,在开发中工作.
更新:config.serve_static_files据说在dev中默认为true,但之后在生产中关闭,因为资产应该通过您的Web服务器提供.我目前只是在heroku上使用免费套牌而且仍在运行webrick,所以我将此设置为true,但没有运气.
更新2:当我设置config.serve_static_files为false,heroku没有看到我的任何资产时,我的所有样式都消失了,图像仍然没有.虽然heroku确实发送了一条警告消息,告诉大师说所有" config.serve_static_files确实能够提供服务公共文件夹中的所有内容,并且与资产管道无关." 我认为它与资产管道无关,因为它只是提供公共文件夹中的资产而不查看我们的资产目录.我也看到heroku在部署时运行预编译命令,所以我不需要每次都这样做.
这让我想知道我使用它调用我的资产的方式image_tag是否可能是问题,但我不确定为什么会这样?
更新3:资产管道的rails指南说:"在常规视图中,您可以访问public/assets/images目录中的图像,如下所示:<%= image_tag "rails.png" %>.我正在使用此约定调用我的图像<%= image_tag("lab49", size: "80x30") %>,但图像仍然不会出现.
更新4:看到我的回答.
我从管理控制台删除了我的 Heroku 应用程序,但是当我尝试使用同一个存储库创建一个新应用程序时,它仍在尝试推送到旧应用程序,我运行以下命令来查看 git 文件
git remote -v
Run Code Online (Sandbox Code Playgroud)
返回这些文件
origin git@github.com:Jbur43/all-bugs-aside.git (fetch)
origin git@github.com:Jbur43/all-bugs-aside.git (push)
Run Code Online (Sandbox Code Playgroud)
我他们试着跑步git rm all-bugs-aside.git,git rm git@github.com:Jbur43/all-bugs-aside.git然后git rm all-bugs aside
我还尝试使用 -rf 运行所有这些命令,但无法删除文件。
有人可以帮助我删除这些文件所需的语法,并且一旦删除它们,我应该能够创建一个新的 heroku 应用程序并推送到git push heroku master,对吗?
在我的index.html.erb文件中,我收到了一个未定义的电子邮件方法.我进入rails控制台并尝试运行User.first.email,它运行良好.我尝试取出电子邮件并运行link.user,这也很有用.当用户绑定到链接并且用户有电子邮件时,我不确定为什么电子邮件是未定义的.我正在寻找一些可能出错的建议.
Index.html.erb
<%= link.user.email %>
Run Code Online (Sandbox Code Playgroud)
迁移的架构已经运行
create_table "users", force: :cascade do |t|
t.string "email", default: "", null: false
Run Code Online (Sandbox Code Playgroud)
楷模:
class Link < ActiveRecord::Base
belongs_to :user
validates :user, presence: true
acts_as_votable
attr_accessor :avatar
mount_uploader :avatar, AvatarUploader
end
class User < ActiveRecord::Base
has_many :links
acts_as_voter
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
end
Run Code Online (Sandbox Code Playgroud)
链接控制器:
class LinksController < ApplicationController
before_filter :authenticate_user!, except: [:index, :show]
def index
@links = Link.all
end
def show
@link = Link.find(params[:id])
end
def new
@link …Run Code Online (Sandbox Code Playgroud) ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2 ruby-on-rails-4