小编cal*_*eld的帖子

“npm WARN EBADENGINE”的原因是什么?

package-lock.json使用 生成文件时npm install,出现以下错误:

npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'app@1.0.0',
npm WARN EBADENGINE   required: { node: '16.0.0' },
npm WARN EBADENGINE   current: { node: 'v16.10.0', npm: '7.24.0' }
npm WARN EBADENGINE }
Run Code Online (Sandbox Code Playgroud)

我在这里有点困惑。它需要 Node v16.0.0,这就是我正在使用的。npm v7.xx 与该版本的节点不兼容吗?

npm package.json npm-install

111
推荐指数
3
解决办法
18万
查看次数

Bootstrap下拉列表不起作用

我开始尝试使用Bootstrap,但是我无法让js下拉函数按照它在doc中的方式工作.

我正在使用的代码来自他们自己站点上的一个示例下拉节点. data-toggle="dropdown"在链接上使用,一切都如他们所说的那样.任何拥有一双新鲜眼睛和更多经验的人都知道会发生什么事吗?http://cssdeck.com/labs/pipw6ahd

<link class="cssdeck" rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.1.1/css/bootstrap.min.css">


<div id="navbar-example" class="navbar navbar-static">
<div class="navbar-inner">
<div class="container" style="width: auto;">
<a class="brand" href="#">Project Name</a>
  <ul class="nav" role="navigation">
    <li class="dropdown">
      <a id="drop1" href="#" role="button" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
      <ul class="dropdown-menu" role="menu" aria-labelledby="drop1">
        <li role="presentation"><a role="menuitem" tabindex="-1" href="http://google.com">Action</a></li>
        <li role="presentation"><a role="menuitem" tabindex="-1" href="#anotherAction">Another action</a></li>
        <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Something else here</a></li>
        <li role="presentation" class="divider"></li>
        <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Separated link</a></li>
  </ul>
    </li>

    <li class="dropdown open">
      <a href="#" id="drop2" role="button" class="dropdown-toggle" data-toggle="dropdown">Dropdown 2 <b …
Run Code Online (Sandbox Code Playgroud)

css3 twitter-bootstrap drop-down-menu

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

使用Lockbox和CarrierWave for Ruby on Rails加密和解密文件上传

我正在尝试使用Lockbox加密和解密文件上传,但是文档假定我不知道我所缺少的知识,并且维护该回购协议的人似乎很忙,无法提供任何帮助。有人可以帮我理解吗?

该文档说,主密钥用于创建存储在模型中的密码。它说,此密码的架构字段应为text或,binary并且命名方式类似于attribute_ciphertext,而不是单纯的attribute。结果,我的模型如下所示:

class IdentityDocument < ApplicationRecord
 belongs_to :user, foreign_key: :user_id
 validates :document_front_ciphertext, :document_back_ciphertext, presence: true
 mount_uploader :document_front_ciphertext, IdentityDocumentsUploader
 mount_uploader :document_back_ciphertext, IdentityDocumentsUploader
end
Run Code Online (Sandbox Code Playgroud)

根据关于CarrierWave的部分,加密就像encrypt向我的上传器添加一样容易:

class IdentityDocumentsUploader < CarrierWave::Uploader::Base
 encrypt
end
Run Code Online (Sandbox Code Playgroud)

控制器创建模型:

    def create
     @id_doc = current_user.identity_documents.new(id_doc_params)
    end

    def id_doc_params
     params.require(:identity_document).permit(:document_front_ciphertext, :document_back_ciphertext)
    end
Run Code Online (Sandbox Code Playgroud)

然后视图将参数提交给控制器:

<%= form_for @id_doc do |f| %>
 <%= f.label :document_front_ciphertext, "Front of driver's license or other state ID" %>
 <%= f.file_field :document_front_ciphertext %>
 <%= f.label :document_back_ciphertext, "Back …
Run Code Online (Sandbox Code Playgroud)

encryption ruby-on-rails carrierwave

6
推荐指数
0
解决办法
80
查看次数

为什么 git reset commit + git push 会导致当前分支的提示落后于远程?

我想撤消对我的回购的一些小改动。我决定回退两次提交,并做到了

git reset --hard <commit>
Run Code Online (Sandbox Code Playgroud)

git push -f
Run Code Online (Sandbox Code Playgroud)

一切顺利。但是当我推送到 heroku 时,我得到了一个关于如何没有推送一些引用的错误,然后是这个解释:

更新被拒绝,因为您当前分支的尖端落后于其远程对应分支。在再次推送之前合并远程更改(例如“git pull”)。

每次我回到以前的提交时,我都会得到一个分离的 HEAD 或遥控器后面的提示。这会阻止我推送到 git 或 heroku。为什么?我该如何解决这个问题?要遵循的正确命令列表是什么,以便将来不会造成干扰?

git github heroku git-reset

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

将多步骤表单向导的第一步渲染为另一个控制器的show动作中的部分步骤

我想渲染多步形式的第一步@trade_wizard(它有自己的控制器WizardsController)作为部分内部ItemsController#show,但我不知道如何构建它而不将代码从一个控制器加倍到另一个控制器.

我正在渲染Item的显示页面中的第一步:

<%= render "/wizards/step1" %>
Run Code Online (Sandbox Code Playgroud)

@trade_wizard在实例化@trade的特殊模型中处理,然后从每个步骤连续继承验证:

module Wizard
  module Trade
    STEPS = %w(step1 step2 step3).freeze

    class Base
      include ActiveModel::Model
      attr_accessor :trade

      delegate *::Trade.attribute_names.map { |attr| [attr, "#{attr}="] }.flatten, to: :trade

      def initialize(trade_attributes)
        @trade = ::Trade.new(trade_attributes)
      end
    end

    class Step1 < Base
      validates :trade_requester_id, :trade_recipient_id, :wanted_item_id, presence: true
      validates :shares, numericality: { only_integer: true, greater_than_or_equal_to: 0, 
                  less_than_or_equal_to: :max_shares }

      def max_shares
        @trade.wanted_item.shares
      end

    end

    class Step2 < Step1
      validates :collateral_item_id, presence: true
    end

    class …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails wizard formwizard

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

在 Rails 中取消一个临时的 Sidekiq 工作

我的应用程序中的某些 Sidekiq 作业计划将资源的状态更改为 ,cancelled除非用户在特定时间范围内做出响应。有一个大量 信息, 关于如何最好地完成这个任务,但没有它实际上取消作业。

要取消作业,维基中的代码说:

class MyWorker
 include Sidekiq::Worker

 def perform(thing_id)
  return if cancelled?
  thing = Thing.find thing_id
  thing.renege!
 end

 def cancelled?
  Sidekiq.redis {|c| c.exists("cancelled-#{jid}") }
 end

 def self.cancel!(jid)
  Sidekiq.redis {|c| c.setex("cancelled-#{jid}", 86400, 1) }
 end
end
Run Code Online (Sandbox Code Playgroud)

然而,这里建议我做类似的事情

 def perform(thing_id)
  thing = Thing.find thing_id
  while !cancel?(thing)
   thing.ignore!
  end
 end

 def cancel?(thing_id)
  thing = Thing.find thing_id
  thing.matched? || thing.passed?
 end
Run Code Online (Sandbox Code Playgroud)

维基上的这个和类似代码令人困惑的是,它实际上没有取消工作。上面的示例只是对thingifcancelled?返回false(应该如此)执行更新,但不会取消如果将来返回 true 以及何时返回。它只是失败并显示 aasm 转换错误消息并被发送到 RetrySet。调用 …

ruby-on-rails aasm sidekiq

5
推荐指数
2
解决办法
1092
查看次数

Rails 应用程序的终端输出产生双重请求

我的 Rails 应用程序在每次加载页面时都会生成双重请求,我无法诊断问题的根源。此处的答案建议删除所有空白/自引用hrefs 并运行rake assets:clean- 但两者都没有任何影响。

除了时间戳和as控制器动作处理部分之外,这两个请求都是相同的。第一个请求说,Processing by TradesController#index as HTML而第二个说Processing by TradesController#index as */*

有没有其他人处理过这个问题,如果有,你是如何解决的?

Started GET "/swaps" for 2600:1700:ba01:ff10:cc31:d814:a204:d70e at 2020-02-23 14:32:25 -0800
Processing by TradesController#index as HTML
User Load (0.5ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT $2  [["id", 1], ["LIMIT", 1]]
(0.4ms)  SELECT COUNT(*) FROM "trades" WHERE "trades"."trade_requester_id" = $1 AND "trades"."approved_at" IS NULL  [["trade_requester_id", 1]]
(0.3ms)  SELECT COUNT(*) …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails

5
推荐指数
0
解决办法
111
查看次数

如何设置$ PATH?

我正在使用Ruby 2.3.0.每次打开一个新的bash选项卡时,我的ruby版本都会降级到2.2.3.所以为了确保我使用最新的,我做到了rvm use 2.3.0.这可以解决每个标签上的问题,并提供以下消息:

PATH is not properly set up, '/Users/mkeable/.rvm/gems/ruby-2.3.0/bin' is not at first place,
         usually this is caused by shell initialization files - check them for 'PATH=...' entries,
         it might also help to re-add RVM to your dotfiles: 'rvm get stable --auto-dotfiles',
         to fix temporarily in this shell session run: 'rvm use ruby-2.3.0'.
Run Code Online (Sandbox Code Playgroud)

所以,我做了echo $PATH一些非常自我解释的事情:

/usr/local/bin:/Users/mkeable/.rvm/gems/ruby-2.3.0/bin:/Users/mkeable/.rvm/gems/ruby-2.3.0@global/bin:/Users/mkeable/.rvm/rubies/ruby-2.3.0/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/Users/mkeable/.rvm/bin
Run Code Online (Sandbox Code Playgroud)

我的.bashrc有这个:

export PATH="/usr/local/heroku/bin:$PATH" export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
Run Code Online (Sandbox Code Playgroud)

而.bash_profile有这个:

source ~/.profile
export PATH=/usr/local/bin:$PATH
[[ …
Run Code Online (Sandbox Code Playgroud)

ruby macos rvm

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

是否可以撤消rake db rollback?

我不小心跑了rake db:migrate,然后运行了rake db:rollback.现在我之前创建的数据库表已经完全消失了.有没有办法撤消回滚,或者我应该恢复到最近的分支?

ruby ruby-on-rails rollback dbmigrate

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

rails中的公共/资产和app/assets之间有什么区别?

这里的Rails指南说

"当config.serve_static_files设置为true时,公共场所下的任何资产都将由应用程序或Web服务器作为静态文件提供.您应该将app/assets用于必须在提供之前进行一些预处理的文件."

我正在使用Rails 4.2.4.没有公共/资产文件夹.这让我想知道一些事情:

  1. "将app/assets用于必须在提供之前进行一些预处理的文件是什么意思?"
  2. 预处理是什么意思?
  3. 静态资产与其他资产的不同之处是什么?使用一个管道而不是另一个管道的性能优势是什么?
  4. 如果4.2.4没有公共/资产文件夹,我甚至需要担心吗?

ruby-on-rails

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