当我在生产模式下启动应用程序时,资产(css + js)无法正确加载。
我进入浏览器控制台net::ERR_ABORTED 404 (Not Found)或 Rails 日志ActionController::RoutingError (No route matches [GET] "/packs/js/application-51bdb73d26ac893c3407.js"):
我制作rake assets:precompile并提交config.assets.compile = true了environments/Production.rb,但结果相同
对于生产模式,我使用相同的应用程序和相同的目录,我只是将其-e production作为参数添加到rails server命令中
我正在尝试创建一个模块来处理我include在application_controller.rb. 这是我的模块的self.included功能。
def self.included(clazz)
clazz.class_eval do
rescue_from ActiveRecord::RecordNotFound do |e|
respond(:record_not_found, 404, e.message)
end
rescue_from ActiveRecord::RecordInvalid do |e|
respond(:record_invalid, 422, e.record.errors.full_messages)
end
rescue_from ActionController::ParameterMissing do |e|
respond(:bad_request, 400, e.message)
end
rescue_from StandardError do |e|
respond(:standard_error, 500, e.message)
end
end
end
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是StandardError捕获所有错误,包括我在其他块中定义的其他错误rescue_from。
我想实现这样的目标:
begin
rescue ActiveRecord::RecordNotFound => e
rescue ActiveRecord::RecordInvalid => e
rescue ActionController::ParameterMissing => e
rescue StandardError => e
end
Run Code Online (Sandbox Code Playgroud)
我在这里先向您的帮助表示感谢。
我无法在 Windows 7 上的 Rail 6 中创建表(即成功运行 db:migrate)。
以防万一我通过安装 Ruby 2.6 开发包并执行“gem install Rails”完全重新安装了 Rails,这对我来说安装了 Rails 6.0.3.1
我创建了一个新项目,所做的第一件事是生成一个“客户”模型,之后我在失败并提示“给出了错误数量的参数”后立即运行 db:migrate 命令。见下文。
C:\Apps\rails>cd cmdb
C:\Apps\rails\cmdb>rails generate model Customer string:name
invoke active_record
create db/migrate/20200525080817_create_customers.rb
create app/models/customer.rb
invoke test_unit
create test/models/customer_test.rb
create test/fixtures/customers.yml
C:\Apps\rails\cmdb>rails db:migrate
== 20200525080817 CreateCustomers: migrating ==================================
-- create_table(:customers)
rails aborted!
StandardError: An error has occurred, this and all later migrations canceled:
wrong number of arguments (given 1, expected 0)
C:/Apps/rails/cmdb/db/migrate/20200525080817_create_customers.rb:4:in `block in change'
C:/Apps/rails/cmdb/db/migrate/20200525080817_create_customers.rb:3:in `change'
bin/rails:4:in `require'
bin/rails:4:in `<main>'
Caused …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 application.js 下正确导入供应商 js 文件app/javascript/packs/application.js
这是当前的架构:
可以看到,我选择将供应商 js 文件放入app/javascrip/plugins/
我的结构application.js如下:
// Rails Internals
require("@rails/ujs").start();
require("turbolinks").start();
require("@rails/activestorage").start();
require("channels");
// Libraries/Vendor-plugins
require("jquery");
import 'bootstrap';
require('../plugins/chosen.min.js');
require('../plugins/magnific-popup.min.js');
require('../plugins/owl.carousel.min.js');
require('../plugins/rangeSlider');
require('../plugins/sticky-kit.min.js');
require('../plugins/masonry.min.js');
require('../plugins/mmenu.min.js');
require('../plugins/tooltips.min.js');
require('../plugins/custom');
// Custom functions
// import { myFunction } from '../components/myScrip';
document.addEventListener('turbolinks:load', () => {
});
Run Code Online (Sandbox Code Playgroud)
custom.js通过这样做,位于 中的文件应该可以访问 jQuery app/javascript/plugins/custom.js,对吧?
为了清楚起见, 的custom.js形状如下:
(function ($) {
"use strict";
$(document).ready(function () {
// ...
}
})(this.jQuery);
Run Code Online (Sandbox Code Playgroud)
但是当我运行服务器时,找不到 jQuery:
yarn add jquery@3.5.1 bootstrap@3.4.1我通过(供应商需要的旧版本)添加了 jQuery …
我正在按照本指南构建restful json api https://www.digitalocean.com/community/tutorials/build-a-restful-json-api-with-rails-5-part-one#project-setup
我遵循了每一个步骤,直到模型区域(有 5 个区域,先决条件,项目设置,模型,控制器,结论)开始测试......但是,当我尝试运行任何测试时,我的所有示例(其中 5 个)他们)都失败了。
C:\Users\nion1\todos-api>bundle exec rspec
FFFFF
Failures:
1) Item
Failure/Error: example.run
`name` is not available from within an example (e.g. an `it` block) or from constructs that run in the scope of an example (e.g. `before`, `let`, etc). It is only available on an example group (e.g. a `describe` or `context` block).
# ./spec/rails_helper.rb:53:in `block (3 levels) in <top (required)>'
# ./spec/rails_helper.rb:52:in `block (2 levels) in <top (required)>'
2) Item
Failure/Error: example.run
`name` …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Rails 6 中创建自定义主键,但没有创建主键,而是创建了普通 id。
我已经给予的移民
def change
create_table(:m_user_status, :id => false) do |t|
t.integer :id, :options => 'PRIMARY KEY'
t.string :status_name, limit: 20
t.integer :status_check
t.timestamps
end
Run Code Online (Sandbox Code Playgroud)
从上面刚刚创建了 int4 类型的 id,但我想创建 int4 类型和主键而不自动递增的 id。我如何在不自动递增的情况下给出 id 并输入 int4(整数正常)
如何查询所有附加图像的用户以及图像的位置.variable??
例如
我可以做这个
# controller
@users = User.all
Run Code Online (Sandbox Code Playgroud)
看法:
<% if user.image.attached? && user.image.variable? %>
<!-- display image -->
<% end %>
Run Code Online (Sandbox Code Playgroud)
@users我想知道是否可以简单地只查询那些同时满足user.image.attached?和条件的逻辑,而不是在视图中包含该逻辑user.image.variable?
这可以通过某些 Active Record 查询实现吗?
activerecord ruby-on-rails rails-activestorage ruby-on-rails-6
嗨,我有一个 rails 6 应用程序,我希望用户在注册时创建一个帐户。
我正在使用设计进行身份验证。
我有两个模型用户(设计)和帐户
class User < ApplicationRecord
has_merit
enum role: [:user, :tech, :admin, :manager]
belongs_to :account
accepts_nested_attributes_for :account
after_initialize :set_default_role, :if => :new_record?
def set_default_role
self.role ||= :admin
end
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
devise :database_authenticatable, :invitable, :registerable,
:recoverable, :rememberable, :validatable
end
class Account < ApplicationRecord
has_many :users, dependent: :destroy
has_many :clients, dependent: :destroy
end
Run Code Online (Sandbox Code Playgroud)
在注册(设计注册)期间,我希望用户创建一个帐户。
在控制台中它的工作原理:
User.create(email: 'test@email.com', password: "test", password_confirmation: "test, account_attributes: {name: "testaccount"})
Run Code Online (Sandbox Code Playgroud)
按预期创建。 …
我在一个新项目中使用 rails 6.0,之后没有设置 cookie
Include ActionDispatch::Cookies
Include ActionDispatch::Session::CookieStore
before_action :cookie_set
def cookie_set
cookies[:test] = {value: 'testset'}
end
Run Code Online (Sandbox Code Playgroud)
浏览器 cookie 为空
我有一个看起来像这样的数组:
[[["Sports", "Soccer"], 2], [["eSports"], 1], [["Sports", "Soccer"], 3]]
Run Code Online (Sandbox Code Playgroud)
在最外层数组的任何元素中,第一个元素(数组)是类别列表。第二个元素是program.id这个类别数组来自。
因此,取上述数组中的第一个元素 -["Sports", "Soccer"]是 的类别数组program_id: 2。
如何计算类别数组重复的实例?在上述情况下,我想要的是这样的:
["Sports", "Soccer"] => Occurs 2 times, with Program Ids: 2 & 3
["eSports"] => Occurs 1 time, with Program Id: 1
Run Code Online (Sandbox Code Playgroud)
我如何有效地做到这一点?