小编Dan*_*iel的帖子

弃用警告:危险查询方法:ActiveRecord中的随机记录> = 5.2

到目前为止,从数据库获取随机记录的"常见"方法是:

# Postgress
Model.order("RANDOM()").first 

# MySQL
Model.order("RAND()").first
Run Code Online (Sandbox Code Playgroud)

但是,在Rails 5.2中执行此操作时,它会显示以下Deprecation警告:

DEPRECATION WARNING:使用非属性参数调用的危险查询方法(其参数用作原始SQL的方法):"RANDOM()".Rails 6.0中不允许使用非属性参数.不应使用用户提供的值调用此方法,例如请求参数或模型属性.可以通过将它们包装在Arel.sql()中来传递已知安全值.

我对Arel并不熟悉,所以我不确定解决这个问题的正确方法是什么.

ruby-on-rails rails-activerecord deprecation-warning ruby-on-rails-5.2

23
推荐指数
2
解决办法
3373
查看次数

`add_template_helper` 方法在 Rails 6.1 中似乎不起作用

将我的项目更新到 Rails 6.1 后,我收到此错误:

NoMethodError:
  undefined method `add_template_helper' for ApplicationMailer:Class
Run Code Online (Sandbox Code Playgroud)

在文档中似乎没有被弃用。

actionmailer ruby-on-rails-6.1

21
推荐指数
1
解决办法
1557
查看次数

Slick 3.0:从Option(Scala Play Framework)内的数据库获取GET结果的惯用方法

我有这个代码API允许我从数据库中检索和对象并JSON使用Slick 3.0以下命令返回一个对象:

// Model

case class Thing(id: Option[Int], name: String)

object Thing {
  implicit val teamWrites = Json.writes[Thing]
}

class Things(tag: Tag) extends Table[Thing](tag, "thing") {
  def id = column[Int]("id", O.PrimaryKey, O.AutoInc)
  def name = column[String]("name")
  def * = (id.?, name) <> ((Thing.apply _).tupled, Thing.unapply)
}

object Things {
  private val db = Database.forConfig("h2mem1")
  private object things extends TableQuery[Things](tag ? new Things(tag)) { 
    def all = things.result 
  }
  private def filterQuery(id: Int): Query[Things, Thing, …
Run Code Online (Sandbox Code Playgroud)

scala playframework slick slick-3.0

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

Cromedriver`driver.manage.logs.get(:browser)`在chromedriver 75.0.3770.8上失败

在chromedriver 75.0.3770.8上访问driver.manage.logs.get(:browser)时-导致错误

#(NoMethodError)的未定义方法`log'

在74.0.3729.6上正常工作

来自:https : //github.com/SeleniumHQ/selenium/issues/7270

ruby capybara selenium-chromedriver

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

在 Ruby 2.7 中解构块参数中的哈希

这个:

[{a: 1, b: 2}, {a: 3, b: 4}].each do |a:, b:| p a end
Run Code Online (Sandbox Code Playgroud)

在 Ruby 2.7 中引发以下警告

警告:不推荐使用最后一个参数作为关键字参数;也许 ** 应该添加到通话中

我知道这each是将散列传递给块,并且块现在接受|a:, b:|作为命名参数但是,有什么方法可以在这种情况下正确解构散列?

ruby ruby-2.7

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

防止Bootstrap4-apha6面包屑中出现新行

当Bootstrap4-aplha6中的面包屑中的文本太长时,las crumb会跳到下一行:

<nav class="breadcrumb">
  <a class="breadcrumb-item" href="#">Home</a>
  <a class="breadcrumb-item" href="#">Library</a>
  <a class="breadcrumb-item" href="#">Data</a>
  <span class="breadcrumb-item active">A slightly too long title</span>
</nav>
Run Code Online (Sandbox Code Playgroud)

生产:

 ---------------------------------
|                                 |
| Home / Library / Data           |
|   / A slightly too long title   |
|                                 |
|                                 |
|                                 |
 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Run Code Online (Sandbox Code Playgroud)

而且我想:

 ---------------------------------
|                                 |
| Home / Library / Data / A slig… |
|                                 |
|                                 |
|                                 |
 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Run Code Online (Sandbox Code Playgroud)

我试过修复它white-space: nowrap,overflow: hidden并且text-overflow: ellipsis它似乎不能正常工作,因为由于某种原因,在Bootstrap4中,breadcrumb-items是向左浮动的块.

有没有人找到解决方法而不覆盖所有Bootstrap类(省略号不是100%必要的)?

css css3 twitter-bootstrap twitter-bootstrap-4 bootstrap-4

7
推荐指数
1
解决办法
1126
查看次数

在Play Framework 2.3.8中使用SORM

我正在阅读Play Framework视频介绍,但是由于导入失败,我无法使用SORM创建数据库对象.

我试图添加依赖项plugins.sbt,并重新启动激活器,但似乎激活器找不到依赖项,我得到了,我得到一个unresolved error:

addSbtPlugin("org.sorm-framework" % "sorm" % "0.3.14")
addSbtPlugin("com.h2database" % "h2" % "1.4.181")
Run Code Online (Sandbox Code Playgroud)

我从Yvis存储库中获得了版本.我也尝试了其他版本没有更好的运气.

scala playframework-2.0 sorm

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

用 Rspec 存根对 Rails.application.config_for 的调用?

我有一个带有以下行的方法:

permissions = Rails.application.config_for(:admin_auth)
Run Code Online (Sandbox Code Playgroud)

它读取文件config/admin_auth.yml并返回我稍后在同一方法中使用的哈希。

问题是为了测试这个方法,我需要给不同的值,permissions但我找不到存根Rails.application.config_for调用的方法。

我试过:

allow(Rails::Application).to receive(:config_for) { { admin: 'super_admin' } }
Run Code Online (Sandbox Code Playgroud)

但我得到一个错误。

ruby rspec ruby-on-rails

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