小编esc*_*nxr的帖子

Rails + Webpacker + React.js / 找不到模块

我正在使用 Rails 4.2 学习 React.js(准备使用它),但我的控制台中有很多错误。

所以我使用 React 16.8(带有 react-rails gem)+ Rails 4.2 + Webpacker 4.0.2

我的文件夹结构:

app
 |
 javascript
    |
    packs
      |
      application.js
      server_rendering.js
      components
       |
       main.js.jsx
       header.js.jsx
       body.js.jsx
       new_item.js.jsx
       all_items.js.jsx
Run Code Online (Sandbox Code Playgroud)

在我的应用程序布局中,我= javascript_pack_tag('application') 在索引视图中添加了= react_component('Main')

但我有这些错误:

错误 这是我的 application.js :

var componentRequireContext = require.context("components", true);
var ReactRailsUJS = require("react_ujs");
ReactRailsUJS.useContext(componentRequireContext);
Run Code Online (Sandbox Code Playgroud)

main.js.jsx :

var Main = React.createClass({
  render() {
    return (
      <div>
        <Header />
        <Body />
      </div>
    );
  }
});
Run Code Online (Sandbox Code Playgroud)

我试图添加import React from ‘react’main.js.jsx但我仍然有错误。

这是我第一次使用 React,我不知道在哪里看...任何帮助将不胜感激 …

ruby-on-rails reactjs webpack webpacker

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

Rails 应用程序在 macOS 上速度极慢

几周以来,我的 Rails 应用程序出现了问题。首先,我必须明确指出,我仅在一个应用程序上遇到此问题,但该应用程序在我同事的计算机(具有相似的性能)和服务器上的临时环境中运行良好。

当我说非常慢时,它是非常非常慢。有时,一个简单的ajax请求有时需要超过5秒。当我单击徽标转到根页面时,单击和开始加载之间存在几秒钟的延迟。每次换页至少需要5秒...

这是我的开发.rb:

# frozen_string_literal: true

Rails.application.configure do
  # Settings specified here will take precedence over those in config/application.rb.

  # In the development environment your application's code is reloaded on
  # every request. This slows down response time but is perfect for development
  # since you don't have to restart the web server when you make code changes.
  config.cache_classes = false

  # Do not eager load code on boot.
  config.eager_load = false

  # Show full error reports.
  config.consider_all_requests_local …
Run Code Online (Sandbox Code Playgroud)

macos ruby-on-rails puma macos-mojave

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

Laravel 社交名流 - Google 身份验证在本地工作但不在生产中工作:缺少必需的参数代码

我在生产环境中使用 Laravel Socialite 的 Google 身份验证时遇到问题。错误与此帖子中的错误相同:

Laravel Socialite 无法在实时服务器上运行,只能在本地计算机上运行

但我有一个 Apache 服务器,经过多次尝试,我还没有找到解决方案。

编辑:

客户端错误:POST“ https://www.googleapis.com/oauth2/v4/token ”导致“400 Bad Request”响应:

{
 "error": "invalid_request",
 "error_description": "Missing required parameter: code"
}
Run Code Online (Sandbox Code Playgroud)

google-authentication laravel laravel-socialite

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

弃用警告:ActionView::Base 实例应该使用查找上下文、赋值和控制器构建

我将应用程序从 rails 5.2 迁移到 rails 6。只剩下一件事要做,但我不知道如何做。

我有这个折旧警告:

弃用警告:ActionView::Base 实例应该使用查找上下文、赋值和控制器来构造。(从 /Users/xxx/xxxx/app/models/stock.rb:42 处的 new 调用)

从这个代码:

view = ActionView::Base.with_empty_template_cache.new(
         ActionController::Base.view_paths, 
         categories: categories, 
         periods: periods
       )

result = view.render formats: [:xlsx], 
                     handlers: [:axlsx], 
                     template: 'admin/reports/logistics/stocks_by_age'
Run Code Online (Sandbox Code Playgroud)

我不明白如何解决它。我去查看源代码中的折旧,但它没有帮助我弄清楚我应该做什么,而且我没有真正找到任何有关此“查找”的文档。

请问有人可以帮我理解这种折旧吗?

ruby-on-rails actionview ruby-on-rails-6

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

window.location未替换但已串联

我有以下代码:

$(window).ready(function() {
  var url = window.location.href;
  if (url.includes("#/projet/")) {
    projectId = url.substring(url.indexOf("#")+1).split("/").slice(2, 3).toString();
    window.location.href = "projects/" + projectId;
  };
})
Run Code Online (Sandbox Code Playgroud)

我被重定向了,但是window.location没有被替换,只是被连接了。例如,如果我的网址是localhost:3000/users/212323/dashboard,则在javascript重定向后,我得到的localhost:3000/users/212323/projects/123456不是localhost:3000/projects/123456

我不明白为什么href是串联的而不是被替换,您有什么主意吗?

javascript

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

Rails 更新到 6.0.1:更改 config.load_defaults 时出现错误

我目前正在将 Rails 应用程序从 5.2.4 更新到 6.0.1。我使用了该任务,修复了一些折旧,然后一一rails app:update取消注释了 中的更改。new_framework_defaults_6_0.rb一切正常,所有测试都经过验证,因此我删除了该new_framework_defaults_6_0.rb文件并更改了配置以加载新的默认值,以及config.load_defaults 6.0... badaboum。

我可以启动 Rails 服务器,但 Puma 出现错误:

Puma caught this error: uninitialized constant Admin (call 'Admin.connection' to establish a connection)::Concerns
Did you mean?  Concurrent (NameError)
/Users/xx/xx/app/models/admin.rb:4:in `<class:Admin>'
/Users/xx/xx/app/models/admin.rb:3:in `<top (required)>'
/Users/xx/.rvm/gems/ruby-2.6.5@xx/gems/zeitwerk-2.2.2/lib/zeitwerk/kernel.rb:16:in `require'
/Users/xx/.rvm/gems/ruby-2.6.5@xx/gems/zeitwerk-2.2.2/lib/zeitwerk/kernel.rb:16:in `require'
...
Run Code Online (Sandbox Code Playgroud)

如果我刷新,则会出现另一个错误:

Before process_action callback :authenticate_user has not been defined
Run Code Online (Sandbox Code Playgroud)

(该方法存在)

最后,如果我再次刷新:

undefined method `signed_in?' for #<#<Class:0x00007fc47a7706f0>:0x00007fc47a783a70>

Run Code Online (Sandbox Code Playgroud)

这些方法存在于我的代码中,而不是 Gem 中。就像某些文件未加载一样。我不知道问题是什么,config.load_defaults 6.0当存在时,它会做同样的事情,new_framework_defaults_6_0.rb那么为什么它适用于文件而不适用于config.load_defaults 6.0

任何帮助将非常感激

红宝石 …

ruby-on-rails ruby-on-rails-6

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

什么是&amp;&amp; =快捷方式?

我看到了以下代码:

resource = controller_name.singularize.to_sym
method = "#{resource}_params"
params[resource] &&= send(method) if respond_to?(method, true)
Run Code Online (Sandbox Code Playgroud)

但是我真的不明白是什么&&=

请有人可以向我解释吗?

谢谢

ruby

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