通常,当我给我的班级命名时,我会使用名词.我给出了一个来自动词的名词,比如' worker '或' buyer '作为我的服务对象的名字.在代码审查期间,据说通常将动词作为服务对象的名称,例如" 工作 "" 购买 ".
我应该遵循哪个方向?
这是另一个反对动词的意见:
大多数情况下,从清晰度和自然语言的角度来看,使用动词是没有意义的.假设您有型号产品,并且您想要一个服务对象来处理某些复杂标准(地理位置,颜色,运输,月相等)的定价.它将是服务对象ProductPricingService的一个很好的候选者.你不会只称它为价格或定价.首先,它是暧昧的.定价什么?你卖的产品?您从供应商处获得的定价?天然气定价今天?如果你认为许多模型可以使用这个服务对象,那么你就是在破坏服务对象的目的.我当然夸大了.但重点是创建清晰且可维护的代码.因此,虽然您可以通过将其命名为Price来节省一些击键,但是如果您将其命名为ProductPricingService,则对于另一个人(以及您在5个月内)更明确.
这是针对deverbal名词的观点
您可以使用InvoiceFinder而不是FindInvoice之类的东西,但我发现将动作放在最后导致了笨拙的命名类,因此将动词放在开头会使它们更清晰.
我正在寻找一个我可以在rails应用程序(不是gziper)中使用的css minifier,它不需要命令行YUI压缩器安装.我正在制作一个内容漫画软件,其中css被粘贴到textarea然后我想缩小然后gzip并将其发送到亚马逊.所以那些使用命令行预处理的解决方案不行......任何想法?
我们也欢迎在线minifier服务.
我在app/listeners目录中有很好的监听器.
我也有/config/initializers/wisper.rb
module Wisper
def self.setup
configure do |config|
config.broadcaster(:default, Broadcasters::LoggerBroadcaster.new(Rails.logger, Broadcasters::SendBroadcaster.new))
end
end
end
Wisper.setup
Wisper.subscribe(ProjectListener.new)
Wisper.subscribe(FeedListener.new)
Run Code Online (Sandbox Code Playgroud)
我可以以某种方式强制Rails在每次请求时重新加载监听器吗?
我有以下型号
class Position < ActiveRecord::Base
belongs_to :position_name
delegate :name, to: :position_name
Run Code Online (Sandbox Code Playgroud)
而这个搜索表单
= search_form_for @search, url: '#', method: 'GET', html: {id: nil, class: "term_search_form"} do |f|
= f.text_field :name_cont, class: 'search-query', id: nil, placeholder: t('search')
Run Code Online (Sandbox Code Playgroud)
我仍然收到此错误消息:
undefined method `name_cont' for #<Ransack::Search:0x007f97187c5b80>
Run Code Online (Sandbox Code Playgroud)
我认为这是因为委托的方法名称.
如何在委派方法上使用ransack?
我在下面定义了api端点:
params do
requires :ids, type: Array, desc: 'Array of group ids'
end
Run Code Online (Sandbox Code Playgroud)
我无法通过Swagger生成的UI传递数组.如果我进入[1, 2, 3, 4]或ids%5b%5d=1&ids%5b%5d=2&ids%5b%5d=3两者都变得无效.如果我用数组调用api,那就可以了.我的客户想尝试Swagger的整个api,所以我想要一个适用于Swagger UI的解决方案.
我有
as TURBO_STREAM,在这种情况下我应该以某种方式突破到顶部。基本上这是代码:
- list_of_projects...
= turbo_frame_tag 'new_project'
= link_to "New Project", new_project_path
Run Code Online (Sandbox Code Playgroud)
然后views/projects/new.html.slim我有:
= turbo_frame_tag 'new_project' do
= simple_form_for @project_form, url: projects_path do |form|
...
Run Code Online (Sandbox Code Playgroud)
然后在控制器中:
def create
@project_form = ProjectForm.new project_params
if @project_form.valid?
command_bus.(Conversations::Commands::CreateProject.new(id: SecureRandom.uuid,
title: @project_form.title))
# should redirect without AS Turbo
redirect_to projects_url
Run Code Online (Sandbox Code Playgroud)
有什么想法如何以可重用的方式做到这一点吗?
我想要一个水平滚动的画廊,就像图片上的画廊一样。
我当前的标记是这个(苗条。):
.col-xs-12
.row-fluid.clearfix
ul.ace-thumbnails
- @equipment_uses.each do |gear|
= content_tag_for(:li, gear) do
a.cboxElement data-rel="colorbox" href="#" title=("Photo Title")
= image_tag gear.image, size: '80x80', alt: "150x150", class: 'img-thumbnail thumbnail'
Run Code Online (Sandbox Code Playgroud)
如果我将.col-xs-12 div设置为“ overflow-x:scroll”,将.row-fluid.clearfix div设置为“ width:10000px”,则它可以工作,但是水平div太长。我想将.row-fluid.clearfix的宽度扩展到图像的总宽度。

我想强调的是匹配的ngram,而不是整个单词.例:
term: "Wo"
highlight should be: "<em>Wo</em>nderfull world!"
currently it is: "<em>Wonderfull</em> world!"
Run Code Online (Sandbox Code Playgroud)
映射是:
{
"global_search_1495732922733" : {
"mappings" : {
"meeting" : {
"properties" : {
...
"name" : {
"type" : "text",
"analyzer" : "meeteor_index_analyzer",
"search_analyzer" : "meeteor_search_term_analyzer"
},
...
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
分析仪是:
"analysis" : {
"filter" : {
"meeteor_stemmer" : {
"name" : "english",
"type" : "stemmer"
},
"meeteor_ngram" : {
"type" : "nGram",
"min_gram" : "2",
"max_gram" : "15"
}
},
"analyzer" : …Run Code Online (Sandbox Code Playgroud) 有没有人知道hstore的任何simple_form或formtastic输入?我试图搜索任何输入,但我还没有找到任何...似乎还没有支持hstore字段类型...
我需要它......
ruby ×3
css ×2
formtastic ×1
highlight ×1
hstore ×1
html ×1
minify ×1
ransack ×1
simple-form ×1
slim-lang ×1
swagger ×1
swagger-ui ×1
turbo-frames ×1
wisper ×1