小编Bot*_*oti的帖子

rails服务对象的名称约定

通常,当我给我的班级命名时,我会使用名词.我给出了一个来自动词名词,比如' worker '或' buyer '作为我的服务对象的名字.在代码审查期间,据说通常将动词作为服务对象的名称,例如" 工作 "" 购买 ".

我应该遵循哪个方向?

这是另一个反对动词的意见:

大多数情况下,从清晰度和自然语言的角度来看,使用动词是没有意义的.假设您有型号产品,并且您想要一个服务对象来处理某些复杂标准(地理位置,颜色,运输,月相等)的定价.它将是服务对象ProductPricingService的一个很好的候选者.你不会只称它为价格或定价.首先,它是暧昧的.定价什么?你卖的产品?您从供应商处获得的定价?天然气定价今天?如果你认为许多模型可以使用这个服务对象,那么你就是在破坏服务对象的目的.我当然夸大了.但重点是创建清晰且可维护的代码.因此,虽然您可以通过将其命名为Price来节省一些击键,但是如果您将其命名为ProductPricingService,则对于另一个人(以及您在5个月内)更明确.

这是针对deverbal名词的观点

您可以使用InvoiceFinder而不是FindInvoice之类的东西,但我发现将动作放在最后导致了笨拙的命名类,因此将动词放在开头会使它们更清晰.

ruby ruby-on-rails naming-conventions

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

如何在不迁移的情况下从rails控制台重命名列?

我想从rails控制台重命名表列而不编写任何迁移.

我怎样才能做到这一点?

ruby-on-rails

12
推荐指数
2
解决办法
4367
查看次数

我需要一个红宝石的css minifier

我正在寻找一个我可以在rails应用程序(不是gziper)中使用的css minifier,它不需要命令行YUI压缩器安装.我正在制作一个内容漫画软件,其中css被粘贴到textarea然后我想缩小然后gzip并将其发送到亚马逊.所以那些使用命令行预处理的解决方案不行......任何想法?

我们也欢迎在线minifier服务.

css ruby minify ruby-on-rails-3

10
推荐指数
2
解决办法
3961
查看次数

每次请求时自动重新加载wisper听众

我在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在每次请求时重新加载监听器吗?

ruby-on-rails wisper

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

如何在委派字段上使用ransack

我有以下型号

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?

ruby-on-rails ransack

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

我如何通过葡萄招摇ui传递数组?

我在下面定义了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的解决方案.

ruby ruby-on-rails swagger swagger-ui

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

使用Turbo Frames 如果表单提交成功,如何重新加载整个页面?

我有

  • 1:turbo 框架中的链接,可将表单加载到同一框架中。工作顺利
  • 2:如果表单无效,则只能通过用错误标记缺失字段来更新自身。工作顺利
  • 3:如果表单提交成功,我应该重定向,这效果不好,因为它正在渲染重定向的结果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)

有什么想法如何以可重用的方式做到这一点吗?

ruby-on-rails turbo-frames ruby-on-rails-7

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

使用CSS水平滚动一线图库

我想要一个水平滚动的画廊,就像图片上的画廊一样。

我当前的标记是这个(苗条。):

.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的宽度扩展到图像的总宽度。

在此处输入图片说明

html css slim-lang

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

如何使用弹性搜索突出显示单词中的ngram标记

我想强调的是匹配的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)

highlight elasticsearch

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

simple_form或formtastic hstore的输入类型

有没有人知道hstore的任何simple_form或formtastic输入?我试图搜索任何输入,但我还没有找到任何...似乎还没有支持hstore字段类型...

我需要它......

ruby-on-rails formtastic simple-form hstore

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