试了一下这个方法,会报错:Unpermitted parameters: :tag_ids
最终的permitted_params
中丢失了tag_ids
参数
因为网页上的text_field
的值是由 js 的多选输入框生成的,生成的值就是1,3,5
这种形式,不能传数组。
Singleton 是单例的意思,就是只初始化一个类成员instance
,并始终使用它。
来自 WIKI 的说明 (链接):
单例模式,也叫单子模式,是一种常用的软件设计模式,属于创建型模式的一种。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置管理。
你在上面的写法有误,因为实际并没有用到 Singleton
,而是在调用类方法
上面的写法等价于:
class CoderA
def self.work
"crash at 996"
end
end
class CoderB
class << self
def work
"live at 955"
end
end
end
p CoderA.work
p CoderB.work
class << self
的写法其实只是让包含在此区块中的类方法
在定义的时候省略self.
正确的单例写法:
require "singleton"
class CoderA
include Singleton
def work
"crash at 996"
end
end
p CoderA.instance.work
这个结果对实际项目感觉没什么意义,毕竟线上项目可不是运行的 hello world 想像一下复杂的线上项目基于 rack,用纯净 ruby 编写,酸爽程度不论,其实还是要写出另一个不会比 rails 更好的框架来。
试过,只 rollback 了触发错误的那个数据库连接的数据,没有 rollback 另一个数据库的数据
我觉得很好看
试试 alias_attribute
class Person
alias_attribute :nickname, :name
end
via: https://api.rubyonrails.org/classes/ActiveModel/AttributeMethods/ClassMethods.html
目前的同步方案是用的 logstash
用这个 gem 还需要建立 model,创建项目,挺重的。我只是想把数据全量导入 es
谢谢回复,你说的似乎是要自己写代码来导入,请问有没有现成的工具?配置一下就可以进行导入。
extract = ->(k) { ->(h) { h[k] } }
arr.map(&extract[:a])
转换一下思路,用这种方法是不是也行?
def handle(options={})
str = options.fetch(:str, "hello world")
list = options.fetch(:list, [])
return str unless str.nil?
return list..map {|e| e += 1} unless list.nil?
end
handle(str: 'hello ruby')
handle(list: [1,2,3])
到 /usr/local/opt/openssl/lib/
这个目录下面看看有没有安装 openssl,如果没有安装,就执行 brew install openssl
如果安装了,就看一下目录下面应该有最新版本的 libssl.1.0.0.dylib
, 例如我这里最新版栮是:libssl.1.1.1h.dylib
然后将最新版本的这个文件做一个符号链接: ln -s libssl.1.1.1h.dylib libssl.1.0.0.dylib
可能这个目录里的其他几个文件也需要做,可以根据错误提示做上就好了。
请问有没有与 microk8s 做一下对比?想知道真实场景中两者的优缺点
可以试试用 config.assets.prefix
为静态资源配置前缀
@huacnlee 我在 firefox 下发贴出现问题,在发贴界面,选择节点时,点击节点名就直接跳转到节点话题索引页了,没办法发布新话题
Gem 本身就是设计用来做静态配置项的,建议动静态分开,如果有动态的需求,我是自己另外做功能放这些配置。
输出信息里有写,你的 application.js 文件超出了推荐大小
建议先检查一下里面用了什么第三方库,会占用这么大文件。
这个方法解决了我的问题,感谢。
大多数程序员选择语言也只是选择一个生态和稳定的吃饭工具,有多少本身很喜欢 ruby 的同学在被迫写其他语言。
一直在关注 @nightire,前段时间看到新出了一期 emberjs 的视频,对 emberjs 挺有兴趣,希望能够继续更新。
也希望能够谈谈最近 emberjs 的近况,感谢。
可以试试
let plupload = require('plupload/plupload');
这个项目几年没更新了,建议找别的库替换
确实是使用方法的问题,在 Graphql 里应该调用 BatchLoader::GraphQL.for
现在可以了,非常感谢。
BatchLoader::GraphQL.for(object.id).batch(default_value: []) do |post_ids, loader|
Image.where(post_id: post_ids).each { |i| loader.call(i.post_id, i) }
end
谢谢回复,我试了一下这个 gem, 在我的 PostType 里面,当object
是Searchkick::HashWrapper
的实例的时候 (searchkick 搜索结果),batchloader 没有起作用,每条 post 还是单独 select 它的所有图片。
相关代码:
# demo_schema.rb
class DemoSchema < GraphQL::Schema
mutation ::Types::MutationType
query ::Queries::QueryType
use BatchLoader::GraphQL
end
# post_type.rb
module Types
class PostType < BaseObject
field :id, String, null: false
field :title, String, "标题", null: false
field :images, [Types::ImageType], "图片", null: true
def images
# 这里的object是 Searchkick::HashWrapper
BatchLoader.for(object.id).batch(default_value: []) do |post_ids, loader|
Image.where(post_id: post_ids).each { |i| loader.call(i.post_id, i) }
end
end
end
end
请教是我的使用方法有问题吗?