我有一个客户端-服务器设置,其中客户端(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相关的问题。
这个问题有解决办法吗?
我正在使用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)
...但是,每隔一段时间文件就会在文件末尾保存两个新行.
当保存前最后一个换行符上有空格,配置设置添加换行符,然后删除空格时,就会出现这种情况.在配置中更改这些设置的顺序不能解决此问题.
我无法找到其他原因,所以它可能是唯一的原因,但理想情况下我想检查是否存在多个换行符.
我正在工作的环境未通过测试,除非文件末尾只有一个新行,所以这有点痛苦.我的问题是,是否有一个插件/方式更加严格保存,确保只有一个尾随新行.
我有一个priority = ['HIGH', 'MEDIUM', 'LOW']用于设置'紧急'数据库列的数组.我想检索按优先级排序的数据,尽管应用Task.order(:urgency)按字母顺序返回结果(即HIGH,LOW,MEDIUM).
我正在使用PostgreSQL作为数据库.
我(显然)喜欢这些从高优先级返回到低优先级.有没有一种简单的方法来实现它,也许使用值在数组中的位置?
是否可以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显示了三种方法:options、process和content_for,尽管我无法成功调用任何方法。
我最好的假设是content_for该方法处理这个问题,使用从父类(即Pry::CodeObject.lookup(obj_name, _pry_, :super => opts[:super]))分配的代码对象,尽管我无法破解这个问题。
有人有这样做的想法或例子吗?
我正在开发一个简单的应用程序来返回随机选择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中撰写.任何想法都非常感激.
我已经下载了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' %>
我的问题在哪里?
我有一个由以下内容呈现的分组下拉菜单,
= 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 on Rails包含blank?香草红宝石中不存在的一些非常有用的功能,例如和日期时间功能。
启用这些功能的宝石是什么?如何使用它?
我在基本任务管理应用程序中有一个表单,允许将任务分配给用户(任务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) 我想要一个干净的代码,我觉得这很笨重.
有一个更好的方法吗?
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 ×6
postgresql ×2
sql ×2
activerecord ×1
autocomplete ×1
eof ×1
express ×1
forms ×1
graphql ×1
jquery ×1
newline ×1
node.js ×1
pry ×1
reactjs ×1
simple-form ×1
sublimetext ×1
sublimetext3 ×1
webpack ×1