小编SRa*_*ack的帖子

无法从非 EcmaScript 模块导入命名导出 XXXX(仅提供默认导出)

我有一个客户端-服务器设置,其中客户端(create-react-app)在 localhost:3000 上运行,服务器是一个构建在节点上的快速服务器,我正在尝试构建 graphql 模式解析器设置。

我可以在服务器上导入 .graphql 文件,但是,在客户端,我通过graphql-tools使用此设置。

当我尝试在前端构建架构解析器时,我正在导入

import { GraphQLFileLoader } from '@graphql-tools/graphql-file-loader';
import { addResolversToSchema } from '@graphql-tools/schema';
import { loadSchema } from '@graphql-tools/load';
Run Code Online (Sandbox Code Playgroud)

...这会导致此错误:

./node_modules/@graphql-tools/graphql-file-loader/index.mjs 无法从非 EcmaScript 模块导入命名导出“AggregateError”(仅提供默认导出)

经过研究,我发现这是与webpack相关的问题。

这个问题有解决办法吗?

node.js express reactjs graphql graphql-tools

35
推荐指数
3
解决办法
14万
查看次数

Sublime Text 3 - 在文件末尾确保_only_一个尾随换行符

我正在使用Sublime Text 3,并希望确保在保存文件末尾只有一个新行.目前,90%的时间我的空白完美运行,使用:

"ensure_newline_at_eof_on_save": true
Run Code Online (Sandbox Code Playgroud)

"trim_trailing_white_space_on_save": true
Run Code Online (Sandbox Code Playgroud)

...但是,每隔一段时间文件就会在文件末尾保存两个新行.

当保存前最后一个换行符上有空格,配置设置添加换行符,然后删除空格时,就会出现这种情况.在配置中更改这些设置的顺序不能解决此问题.

我无法找到其他原因,所以它可能是唯一的原因,但理想情况下我想检查是否存在多个换行符.

我正在工作的环境未通过测试,除非文件末尾只有一个新行,所以这有点痛苦.我的问题是,是否有一个插件/方式更加严格保存,确保只有一个尾随新行.

newline eof sublimetext sublimetext3 sublime-text-plugin

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

Rails - 对列的值进行排序(优先级列)

我有一个priority = ['HIGH', 'MEDIUM', 'LOW']用于设置'紧急'数据库列的数组.我想检索按优先级排序的数据,尽管应用Task.order(:urgency)按字母顺序返回结果(即HIGH,LOW,MEDIUM).

我正在使用PostgreSQL作为数据库.

我(显然)喜欢这些从高优先级返回到低优先级.有没有一种简单的方法来实现它,也许使用值在数组中的位置?

sql postgresql ruby-on-rails

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

从 Ruby 文件访问 Pry 的 show-source 方法

是否可以show-source从 Ruby 文件中访问 Pry 的方法?如果是这样,这是如何完成的?

例如,如果我有这个文件:

# testing.rb

require 'pry' 

def testing
  puts 'hi'
end

puts show-source testing
Run Code Online (Sandbox Code Playgroud)

并运行ruby testing.rb,我想要输出:

Owner: testing.rb
Visibility: public
Number of lines: 3

def testing
  puts 'hi'
end
Run Code Online (Sandbox Code Playgroud)

为了解释这样做的基本原理,我对一个方法进行了测试,尽管原始方法似乎偶尔会被调用,并且我认为输出调用的源以查看它来自哪里会很方便。我知道有更简单的方法可以做到这一点,尽管从这个兔子洞开始,我有兴趣看看是否可以做到这一点:)

运行稍微令人头晕的程序show-source show-source会显示该类中的一些方法Pry::Command::ShowSource,这些方法继承自Pry::Command::ShowInfo.

Pry::Command::ShowSource显示了三种方法:optionsprocesscontent_for,尽管我无法成功调用任何方法。

我最好的假设是content_for该方法处理这个问题,使用从父类(即Pry::CodeObject.lookup(obj_name, _pry_, :super => opts[:super]))分配的代码对象,尽管我无法破解这个问题。

有人有这样做的想法或例子吗?

ruby ruby-on-rails pry

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

从每个类别中选择一个的有效方法 - Rails

我正在开发一个简单的应用程序来返回随机选择exercises,每个选择一个bodypart.

bodypart是模型enum上的索引列Exercise.DB是PostgreSQL.

以下实现了我想要的结果,但感觉非常低效(每次击中db一次bodypart):

BODYPARTS = %w(legs core chest back shoulders).freeze

@exercises = BODYPARTS.map do |bp|
  Exercise.public_send(bp).sample
end.shuffle
Run Code Online (Sandbox Code Playgroud)

因此,这给exercise每个随机bodypart,并在最后混合顺序.

我还可以将所有练习存储在内存中并从中选择; 但是,我想这会有可怕的扩展(目前只有十几个种子记录).

@exercises = Exercise.all

BODYPARTS.map do |bp|
  @exercises.select { |e| e[:bodypart] == bp }.sample
end.shuffle
Run Code Online (Sandbox Code Playgroud)

对这些进行基准测试表明该select方法在小范围内更有效:

Queries:            0.072902   0.020728   0.093630 (  0.088008)
Select:             0.000962   0.000225   0.001187 (  0.001113)
MrYoshiji's answer: 0.000072   0.000008   0.000080 (  0.000072)
Run Code Online (Sandbox Code Playgroud)

我的问题是,是否有一种有效的方法来实现这一输出,如果是,那么这种方法可能是什么样子.理想情况下,我想将其保留为单个数据库查询.

很高兴使用ActiveRecord或直接在SQL中撰写.任何想法都非常感激.

ruby sql postgresql activerecord ruby-on-rails

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

Hello#index中的Webpacker :: Manifest :: MissingEntryError(ruby on rails)

我已经下载了Honeybadger Webpack示例并运行bundle install

我在终端中没有任何错误,但是在启动服务器时得到以下信息:

Webpacker can't find application.js in /Users/admin/Documents/sourcemap/honeybadger-rails-webpacker-example/public/packs/manifest.json. Possible causes:
1. You want to set webpacker.yml value of compile to true for your environment
   unless you are using the `webpack -w` or the webpack-dev-server.
2. Webpack has not yet re-run to reflect updates.
3. You have misconfigured Webpacker's config/webpacker.yml file.
4. Your Webpack configuration is not creating a manifest.
Your manifest contains:
{
}
Run Code Online (Sandbox Code Playgroud)

适用于线 <%= javascript_pack_tag 'application' %>

我的问题在哪里?

ruby ruby-on-rails webpack

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

使用 f.select 通过 grouped_options_for_select 设置默认值

我有一个由以下内容呈现的分组下拉菜单,

= f.select :location_id, 
           grouped_options_for_select(grouped_location_options, 
                                      default_location_name), 
           { selected: default_location_name }, 
           class: 'form-control'
Run Code Online (Sandbox Code Playgroud)

我希望将默认值设置为Unassigned,但上面的代码似乎没有执行我想要的操作。

有人可以给我一些线索来解决这个问题吗?

提前谢谢了!

ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-4

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

如何在普通(非ROR)Ruby文件中使用Ruby on Rails函数

Ruby on Rails包含blank?香草红宝石中不存在的一些非常有用的功能,例如和日期时间功能。

启用这些功能的宝石是什么?如何使用它?

ruby ruby-on-rails

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

Ruby on Rails - 简单表单自动完成关联搜索

我在基本任务管理应用程序中有一个表单,允许将任务分配给用户(任务belongs_to用户).我正在使用Simple Form.

目前,该关联以典型方式填充,其中包含用户下拉列表:<%= f.association :user, label_method: :name, value_method: :id, include_blank: false %>.

但是,随着用户数量的增长,我希望将其更改为自动填充表单字段以查找用户.我已经尝试过关于这个主题Railscast,虽然它没有使用Simple Form而且没有在我的实现上工作.

这是我的表单,模型和.coffee代码:

形成

<%= simple_form_for @task do |f| %>
  ...
  <%= f.input :user_name, as: :search, data: 
      {autocomplete_source: User.pluck(:name)} %>
  ...
  <%= f.button :submit %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

模型

# Virtual attribute for autocomplete form field
  def user_name
    user.try(:name)
  end

  def user_name=(name)
    self.user = User.find_by_name(name) if name.present?
  end
Run Code Online (Sandbox Code Playgroud)

tasks.coffee

jQuery ->
  $('#task_user_name').autocomplete
    source: $('#task_user_name').data('autocomplete-source')
Run Code Online (Sandbox Code Playgroud)

这会生成以下HTML:

<input class="string search optional form-control 
ui-autocomplete-input ui-autocomplete-loading" …
Run Code Online (Sandbox Code Playgroud)

forms jquery autocomplete ruby-on-rails simple-form

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

尝试方法更好的替代方案

我想要一个干净的代码,我觉得这很笨重.

有一个更好的方法吗?

User.try(:profile).try(:settings).try(:card).try(:options)
Run Code Online (Sandbox Code Playgroud)

如果我删除了try方法,我会得到一个nil方法错误.

是否还有另一段代码可以执行以下操作:

User.try(:profile,:settings, :card, :options)
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails activesupport

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