小编roy*_*aar的帖子

在本地生产中运行rails服务器(InvalidMessage错误)

我正在运行Ruby 2.5.1和Rails 5.2.0.我跑了rails s -e production,它给出了这个错误:

/home/roy/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activesupport-5.2.0/lib/active_support/message_encryptor.rb:206:in `rescue in_decrypt': ActiveSupport::MessageEncryptor::InvalidMessage
(ActiveSupport::MessageEncryptor::InvalidMessage)
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?


编辑: 每当我尝试使用编辑凭证文件时,都会出现相同的错误

EDITOR="nano --wait" bin/rails credentials:edit
Run Code Online (Sandbox Code Playgroud)

我也意识到我还没有创建一个生产数据库,所以我尝试使用它

RAILS_ENV=production bundle exec rails db:reset
Run Code Online (Sandbox Code Playgroud)

(我知道db:reset有点多余但它应该可以尝试创建,迁移和播种服务器)

可悲的是我得到了同样的错误(InvalidMessage错误)

Unsupported rails environment for compass
rake aborted!
ActiveSupport::MessageEncryptor::InvalidMessage: ActiveSupport::MessageEncryptor::InvalidMessage
/home/roy/apps/myappname/config/environment.rb:5:in `<main>'
/home/roy/.rbenv/versions/2.5.1/bin/bundle:23:in `load'
/home/roy/.rbenv/versions/2.5.1/bin/bundle:23:in `<main>'

Caused by:
OpenSSL::Cipher::CipherError: 
/home/roy/apps/myappname/config/environment.rb:5:in `<main>'
/home/roy/.rbenv/versions/2.5.1/bin/bundle:23:in `load'
/home/roy/.rbenv/versions/2.5.1/bin/bundle:23:in `<main>'
Tasks: TOP => db:create => db:load_config => environment
Run Code Online (Sandbox Code Playgroud)

production ruby-on-rails

16
推荐指数
2
解决办法
6999
查看次数

Rails 5.2 Active Storage清除/删除附件

所以我使用Active Storage上传附加到Collection模型的多个图像.除非我试图从集合中清除/删除单个附件,否则一切都很顺利.

问题:出于某种原因,每当我加载集合的显示页面时,我的所有图像都会被立即清除/删除.当然,每当我点击链接时我只想删除一个文件.有谁知道如何解决这个问题?

我的收藏展示视图:

<div id="gallery">
  <% @collection.images.each do |image| %>
    <%= image_tag(image) %>
    <%= link_to 'Remove image', image.purge %>
  <% end %>
</div>
Run Code Online (Sandbox Code Playgroud)

我已经阅读了http://edgeguides.rubyonrails.org/active_storage_overview.html#removing-files的文档 (参见第4段)

但遗憾的是,这并未提供有关如何专门使用purge或purge_later方法的任何信息.

编辑 目前将我的代码更改为此(仍然遗憾地无效):

<div id="gallery">
  <% @collection.images.each do |image| %>
    <%= image_tag(image) %>
    <%= link_to 'Remove', delete_image_attachment_collections_url(image.signed_id),
                method: :delete,
                data: { confirm: 'Are you sure?' } %>
    <% end %>
</div>
Run Code Online (Sandbox Code Playgroud)

在我的collections_controller.rb中有这个

  def delete_image_attachment
    @image = ActiveStorage::Blob.find_signed(params[:id])
    @image.purge
    redirect_to root_path
  end
Run Code Online (Sandbox Code Playgroud)

我试图删除附加图像后,这给了我这个错误:

在(尝试)删除图像后返回集合节目时出现错误.

服务器日志:

Started DELETE "/collections/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBYdz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--3e75276d414b4c2040e02cf0afbc083e2337faa0/delete_image_attachment" for ::1 at 2018-03-29 19:06:55 …
Run Code Online (Sandbox Code Playgroud)

file-upload ruby-on-rails rails-activestorage

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

Cron 作业未执行命令

我正在尝试使用此处解释的cron 作业来安排备份。

cron 作业确实运行,但遗憾的是没有执行其中的命令。

这是我的 schedule.rb 文件

every 1.minute do
   command "backup perform -t my_backup"
end
Run Code Online (Sandbox Code Playgroud)

转换为这个 cron 文件:

# Begin Whenever generated tasks for: /home/roy/Backup/config/schedule.rb
* * * * * /bin/bash -l -c 'backup perform -t my_backup'

# End Whenever generated tasks for: /home/roy/Backup/config/schedule.rb
Run Code Online (Sandbox Code Playgroud)

然后 cron 作业每分钟运行一次(我可以通过运行看到grep CRON /var/log/syslog)。这些是我最后的 cron 工作:

Mar 20 21:48:01 roybuntu CRON[18041]: (roy) CMD (/bin/bash -l -c 'backup perform -t my_backup')
Mar 20 21:48:01 roybuntu CRON[18040]: (roy) MAIL (mailed 37 bytes …
Run Code Online (Sandbox Code Playgroud)

ruby backup cron ruby-on-rails

5
推荐指数
1
解决办法
249
查看次数

如何使用Ruby向上/向下移动数组元素

假设我有这个数组

array = ['a', 'b', 'c', 'd']
Run Code Online (Sandbox Code Playgroud)

什么是定位元素的好方法(例如'b')并使用行中的下一个元素(在本例中为'c')切换它,结果变为:

=> ['a', 'c', 'b', 'd']
Run Code Online (Sandbox Code Playgroud)

ruby

0
推荐指数
2
解决办法
190
查看次数