javascript

java

python

c#

android

node.js

c++

reactjs

php

html

jquery

css

.net

ios

git

ruby-on-rails

sql

c

string

ruby

为什么Rails 5使用ApplicationRecord而不是ActiveRecord :: Base?

我们知道,Rails 5添加了ApplicationRecord作为抽象类,该抽象类由我们的模型(ActiveRecord)继承。

但基本上,我认为我们对ApplicationRecord进行的每个技术要求,也可以对ApplicationRecord进行。例如:

module MyFeatures
  def do_something
    puts "Doing something"
  end
end

class ApplicationRecord < ActiveRecord::Base
  include MyFeatures
  self.abstract_class = true
end

因此,现在每个模型都将附加ApplicationRecord的行为。但是我们也可以在Rails 4中实现这一点:

ActiveRecord::Base.include(MyFeatures)

那么使用ApplicationRecord有什么好处,您是否认为有必要添加ApplicationRecord

trans by 2020-02-08T04:30:53Z

Rails 5,Rspec:在方案中找不到环境数据

将Rails应用程序升级到Rails 5后,运行RSpec测试会给我以下错误:

rails aborted!
ActiveRecord::NoEnvironmentInSchemaError: 

Environment data not found in the schema. To resolve this issue, run: 

    bin/rails db:environment:set RAILS_ENV=test

但是,那个bin不存在,我似乎无法用bundle binstubs railsrake rails:update:bin生成它。

我也尝试过:

rails db:environment:set RAILS_ENV=test
rake db:environment:set RAILS_ENV=test

Github上有一个相关的问题。

我该如何解决这个错误?

trans by 2020-01-18T16:29:16Z

ruby-在rails 5.1及更高版本中,代替“ render:text”(和“ render none:true”)使用什么?

Rails 5.1消除了以前不推荐使用的方法的全部负担。 其中有老朋友render :text

当您需要渲染一些文本,但又不想增加视图模板的开销时,它非常有用。 例子:

render text: "ok"
render text: t('business_rules.project_access_denied'), status: 401

用什么代替呢?

trans by 2020-01-18T05:19:29Z

如何在Rails 5中禁用Turbolink?

在处理websocket时,这一直是令人头疼的问题,除添加bug外,它还损害了我的性能。 由于ActionCable是我升级的全部原因,因此我非常希望完全摆脱它。

trans by 2020-01-11T08:32:24Z

ruby on rails-控制器规格未知关键字:id

我有简单的动作表演

def show
  @field = Field.find_by(params[:id])
end

我想为此写规格

require 'spec_helper'

RSpec.describe FieldsController, type: :controller do

    let(:field) { create(:field) }

  it 'should show field' do
    get :show, id: field
    expect(response.status).to eq(200)
  end
end

但我有一个错误

Failure/Error: get :show, id: field

 ArgumentError:
   unknown keyword: id

如何解决?

trans by 2019-11-09T12:57:20Z

Rails db:migrate与rake db:mig

我是新手。 我注意到在Rails 5中生成数据迁移时,有人使用rails db:migrate而不是rake db:migrate。有人可以解释一下Rails vs rake命令在数据库迁移中的区别吗? 这是否意味着在rails 5中过时的rake命令?

非常感谢

trans by 2019-10-05T21:40:23Z

javascript-Rails 5:如何通过涡轮链接使用$(document).ready()

涡轮链接可防止正常的$(document).ready()事件在除初始负载之外的所有页面访问中触发,如此处和此处所述。 但是,链接答案中的解决方案均不能与Rails 5一起使用。 我如何像以前的版本那样在每次页面访问中运行代码?

trans by 2019-09-30T11:50:58Z

Rails 5,Undefined method`for'for#<Devise on line devise_parameter_sanitizer。

我正在使用Rails 5

我在模型用户中添加了新的字段用户名。

class Users::RegistrationsController < Devise::RegistrationsController
  before_action :configure_permitted_parameters

  protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.for(:sign_up).push(:username)  
  end
end

在注册期间显示错误:未定义的方法`for'for#您的意思是? 叉子

跟踪:

NoMethodError(未定义的方法`for for for#你的意思是? 叉子):

app/controllers/users/registrations_controller.rb:7:in `configure_permitted_parameters'
  Rendering /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout
  Rendering /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/_source.html.erb
  Rendered /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/_source.html.erb (5.0ms)
  Rendering /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb
  Rendered /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (2.9ms)
  Rendering /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb
  Rendered /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.2ms)
  Rendered /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout (118.1ms)

谁可以帮忙? 怎么解决这个问题?

trans by 2019-09-11T11:04:37Z

不推荐使用“:nothing”选项,将在Rails 5.1中删除

这个代码在rails 5中

class PagesController < ApplicationController
  def action
    render nothing: true
  end
end

导致以下弃用警告

DEPRECATION WARNING: :nothing` option is deprecated and will be removed in Rails 5.1. Use `head` method to respond with empty response body.

我该如何解决?

trans by 2019-08-13T09:18:01Z

ruby - Rails 5:ActiveRecord OR查询

你如何在Rails 5 ActiveRecord中进行or查询? 另外,是否可以在ActiveRecord查询中链接orwhere

trans by 2019-08-08T02:37:21Z

autoload - Rails 5:在生产中加载lib文件

我已将我的一个应用程序从Rails 4.2.6升级到Rails 5.0.0。 升级指南说,默认情况下,Autoload功能现在已在生产中禁用。

现在,我的生产服务器上总是出现错误,因为我在config.enable_dependency_loading文件中加载了自动加载的所有lib文件。

module MyApp
    class Application < Rails::Application
        config.autoload_paths += %W( lib/ )
    end
end

目前,我已将config.enable_dependency_loading设置为true,但我想知道是否有更好的解决方案。 必须有一个原因,默认情况下在生产中禁用自动加载。

trans by 2019-07-30T05:48:41Z

ruby on rails - ActiveRecord或查询哈希表示法

我知道有23个主要表示法为or ActiveRecord方法提供参数:

  1. 纯字符串
  2. 排列
  3. 哈希

where方法指定or是直截了当的:

# Pure String notation
Person.where("name = 'Neil' AND age = 27")

# Array notation
Person.where(["name = ? AND age = ?", 'Neil', 27])

# Hash notation
Person.where({name: "Neil", age: 27})

为这个相同的where方法指定or让我难以理解哈希语法。 可能吗?

# Pure String notation
Person.where("name = 'Neil' OR age = 27")

# Array notation
Person.where(["name = ? OR age = ?", 'Neil', 27])

# Hash notation DOESN'T WORK
Person.where({name: "Neil" OR age: 27})
trans by 2019-06-05T09:32:28Z

ruby on rails - 警告:constant :: Fixnum已弃用生成新mod时

我试图找到一些解决方案,但我真的找不到与运行rails命令时出现的错误相关的任何内容:

rails generate model书名:string summary:text isbn:string

/home/vmu/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/xml_mini.rb:51: warning: constant ::Fixnum is deprecated
/home/vmu/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/xml_mini.rb:52: warning: constant ::Bignum is deprecated
/home/vmu/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/core_ext/numeric/conversions.rb:138: warning: constant ::Fixnum is deprecated
Running via Spring preloader in process 3579
Expected string default value for '--jbuilder'; got true (boolean)
      invoke  active_record
   identical    db/migrate/20170104114702_create_books.rb
   identical    app/models/book.rb
      invoke    test_unit
   identical      test/models/book_test.rb
   identical      test/fixtures/books.yml

有谁知道可能导致这些错误的原因?

trans by 2019-05-27T10:09:59Z

1 共1页