到目前为止,从数据库获取随机记录的"常见"方法是:
# 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
将我的项目更新到 Rails 6.1 后,我收到此错误:
NoMethodError:
undefined method `add_template_helper' for ApplicationMailer:Class
Run Code Online (Sandbox Code Playgroud)
在文档中似乎没有被弃用。
我有这个代码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) 在chromedriver 75.0.3770.8上访问driver.manage.logs.get(:browser)时-导致错误
#(NoMethodError)的未定义方法`log'
在74.0.3729.6上正常工作
这个:
[{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:|作为命名参数但是,有什么方法可以在这种情况下正确解构散列?
当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%必要的)?
我正在阅读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存储库中获得了版本.我也尝试了其他版本没有更好的运气.
我有一个带有以下行的方法:
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)
但我得到一个错误。