小编use*_*553的帖子

种子has_many的正确方法:通过Rails中的关系

我已经通过数据库迁移到has_many:通过帖子,类别和分类关系之间的关联.

架构:

create_table "categories", force: :cascade do |t|
  t.string   "title"
  t.integer  "subscribers"
  t.integer  "mod"
  t.text     "description"
  t.datetime "created_at",  null: false
  t.datetime "updated_at",  null: false
end


create_table "categorizations", force: :cascade do |t|
  t.integer  "category_id"
  t.integer  "post_id"
  t.datetime "created_at"
  t.datetime "updated_at"
end

create_table "posts", force: :cascade do |t|
  t.string   "title"
  t.datetime "created_at",              null: false
  t.datetime "updated_at",              null: false
  t.integer  "user_id"
  t.text     "content"
  t.integer  "category_id"
end
Run Code Online (Sandbox Code Playgroud)

楷模:

class Categorization < ActiveRecord::Base 
  belongs_to :category
  belongs_to :post
end 

class Category < ActiveRecord::Base
  has_many :categorizations
  has_many …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

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

如何将 ActiveRecord_AssociationRelation 转换为 ActiveRecord 中的数组?

如何将 aActiveRecord_AssociationRelation转换为 Rails 模型实例数组?

我有这样一个after_save钩子的代码:

class Like < ApplicationRecord
  belongs_to :likee, class_name: 'User', foreign_key: 'likee_id'
  belongs_to :liker, class_name: 'User', foreign_key: 'liker_id'

  after_save :mutual_like?

  private

  def mutual_like?
    if liker.likes.where(likee: liker) // returns collection proxy but I want to return an array of model instances so that I can create another model

    end
  end
end
Run Code Online (Sandbox Code Playgroud)

有没有办法返回实例数组?

表供参考:

  create_table "likes", force: :cascade do |t|
    t.integer  "liker_id",      null: false
    t.integer  "likee_id",      null: false
    ...
  end
Run Code Online (Sandbox Code Playgroud)

我认为问题在于 Rails 没有根据 likee_id / …

ruby-on-rails

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

如何使用不同的ID动态创建输入元素?

我有使用JavaScript动态生成的输入.但是,我不确定如何向这些添加ID.让我说清楚:我想为每个人提供不同的ID,我知道如何为所有人添加一个id.

这就是我尝试过的:

$(document).ready(function() { 
var wrapper         = $(".wayptHolder");      //Fields wrapper
var add_button      = $(".add_field_button"); //Add button ID
var x               = 0;                      //initial text box count

//add input element 
$(add_button).click(function(event){          
    event.preventDefault();
    if(x < 8){ 

      $(wrapper).append('<div><input type="text", id="waypt"' + x + ' class="form-control added-input", placeholder="Next"><a href="#" class="remove_field">Remove</a></div>');//add inputbox
        x++;
     }
});


    $(wrapper).on("click",".remove_field", function(event){ //user click on remove text
        event.preventDefault(); $(this).parent('div').remove(); x--;
    })
});
Run Code Online (Sandbox Code Playgroud)

但是,在新元素上,它将id显示为waypt.我研究过,它看起来不像JavaScript有字符串插值.例如,Ruby可以解决这个问题,因为它能够使用#pt(#x),以便字符串将x解释为变量.JS如何复制这种行为?

javascript jquery

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

Rails渲染部分两次

Rails输出我的文章两次.目前,我只是循环文章集合并输出它.起初我认为它是AJAX的一个问题,但我删除了application.js和index.js.erb文件中的所有javascript,它仍然重复两次.我还通过登录Rails c并运行来检查数据库,Articles.all.count并返回正确的#文章.我也重置了数据库并再次尝试使用相同的结果.

文章#指数

<h1 class="text-center">talks</h1>

<div id="articles-list" class="small-12 small-centered columns">
  <%= render @articles %>
</div>  

<%= will_paginate @articles %>
Run Code Online (Sandbox Code Playgroud)

_article.html.erb partial:

<% @articles.each_with_index do |article, index| %>
<%= index %>
<dl class="individual-article">
    <dt><%= article.title %> 
    <% if current_user.try(:admin) %>
        | <%= link_to 'Edit', edit_article_path(article) %>
    <% end %><br> 
    <%= raw article.tags.map(&:name).map { |t| link_to t, tag_path(t), class: get_class(t) }.join(', ') %>
    </dt>
    <dd><%= truncate(article.body.html_safe, length: 200) %>
        <%= link_to 'more', article_path(article) %>
    </dd>
</dl>
Run Code Online (Sandbox Code Playgroud)

我把索引打开,如果它正在重复,它就是.如果我有三篇文章,它将输出0 1 2 0 …

ruby ajax ruby-on-rails

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

Elixir中的URL编码列表

好吧,完全被这个问题困住了,而且文档没有多少.我想编码一个这样的嵌套列表:

URI.encode_query(%{group: %{names: ["first", "second", "third", "fourth"]}})
Run Code Online (Sandbox Code Playgroud)

基本上,该结构是具有名称属性的组,该列表是列表.我收到这个错误:(Protocol.UndefinedError) protocol String.Chars not implemented for %{names: ["first", "second", "third", "fourth"]}

我发现在Elixir中没有类似这样的库.

我意识到文档说你不能使用String.Chars协议的列表,但我不明白你如何创建那个数据结构.

tldr

我希望List作为URL中的字符串.以Ruby为例,我会写

names: ["first", "second", "third", "fourth"]

在Elixir中实现这一目标的想法?

好的,所以没有办法,你必须手动完成.

参考:https://elixirforum.com/t/uri-encode-query-1-and-lists/2492

elixir

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

管理 golang 中的循环依赖

我无法理解在 golang 中组织应用程序依赖结构的最佳方法。

本质上,我的应用程序的结构如下:

accounts
  ...
  handlers
    accounts.go
  models
    account.go
  repos
    account.go
Run Code Online (Sandbox Code Playgroud)

现在我有一个用于帐户的数据库访问对象 (DAO) 设置,我想避免将验证逻辑放在那里,因为这更适合模型域。存储库旨在仅处理与数据库的交互。

在模型内部,我认为进行验证是有意义的。然而,一项验证(例如电子邮件的唯一性)需要使用 DAO,这会引发有关循环依赖的错误。

我很好奇在这个范例中组织验证的最佳方法是什么?我真的应该为任何交互添加一个服务层吗?也就是说,我是否应该有一个仅是帐户结构的模型,然后进行验证并在服务中保存挂钩之前?

go

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

是否可以在 sumologic 中解析嵌套的 json?

所以我有一个这种格式的日志:

{
    "date":1598808279.785381,
    "log":"{\"level\":\"info\",\"ts\":15988.7852,\"caller\":\"server/middlewares.go:26\",\"msg\":\"Request Log\",\"status\":200,\"method\":\"GET\",\"url\":\"/health\",\"duration\":0.000008323}",
    "container_id":"someid",
    "container_name":"/service-name",
    "source":"stdout"
}
Run Code Online (Sandbox Code Playgroud)

我想提取该log领域内的状态。阅读文档后,我看起来应该能够做到:

_collector="MyService" | json auto | fields log.status
Run Code Online (Sandbox Code Playgroud)

但是,这会引发语法错误.

我认为的另一个解决方案是,根据其他语言的工作方式,管道通常返回对象,因此如果我可以增量返回字段,这应该可以工作:

_collector="MyService" | json auto | fields (log) | fields (status)
Run Code Online (Sandbox Code Playgroud)

但这也行不通。

我尝试指定给定字段:

_collector="MyService" | json auto "fields.log.status"
Run Code Online (Sandbox Code Playgroud)

但这是行不通的。

我还尝试使用如下字段直接提取该值:

_collector="MyService" | json field=Message "log.status"
Run Code Online (Sandbox Code Playgroud)

最后,我尝试做所有这些变化:

_collector="MyService" | json auto field=log "status"

_collector="MyService" | json auto field=log | fields status

_collector="MyService" | json auto field=log "status"

_collector="MyService" | json auto field=log "log.status"
Run Code Online (Sandbox Code Playgroud)

但无济于事。

有什么想法我哪里出错了吗?

logging sumologic

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

RSpec - 测试跨路线的多个期望

我正在尝试使用shared_examples作为跨多个路线重复期望的方法.特别是,我想测试我的页眉和页脚中的某些静态资源是否正在加载.但是,我得到一个错误说:

RSpec::Core::ExampleGroup::WrongScopeError: `it_behaves_like` is not available from within an example (e.g. an `it` block) or from constructs that run in the scope of an example (e.g. `before`, `let`, etc). It is only available on an example group (e.g. a `describe` or `context` block).
Run Code Online (Sandbox Code Playgroud)

现在,我不确定如何解决这个问题.这是我目前的设置.

shared_examples_for 'a page' do 
    describe 'should load static assets' do 
        it 'header, footer and icons' do 
            expect(page).to have_css 'footer.footer'                
            expect(page).to have_css '#navbar-brand'                
            brand = page.first(:css, '#navbar-brand')
            visit brand[:src]                                       
            expect(page.status_code).to be 200 
        end
    end
end


describe 'site …
Run Code Online (Sandbox Code Playgroud)

ruby testing rspec sinatra capybara

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

HAML中的角度指令语法

我无法正确使用语法-如何将指令添加到haml模板?

假设我有一个名为“ my-directive”的指令。我想将其放入haml模板。

尝试1:直接使用html语法

<my-directive></my-directive>

显然,这是行不通的。

尝试2:上课

.my-directive

尝试3:使用ng语法

{:ng => 'my-directive' }

尝试4:使用数据

{ :ng => { :data => "newDirective" } }

尝试5:使用html / haml元素

%my-directive

尝试6:用ng包装div

%div{ :ng => 'my-directive' }

尝试7:用数据包装div

%div{ :ng => { :data => "newDirective" } }

这些都不起作用。

咨询资源:

在Rails应用程序的Haml视图中使用AngularJS

HAML /角度教程

HAML Github问题

Reddit问题

haml angularjs

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

如何在Docker机器和Docker for Mac之间切换?

在跑步之前

eval $(docker-machine env remote)
Run Code Online (Sandbox Code Playgroud)

我正在使用docker for mac并且具有环境上下文.但是,在运行该命令后,我现在指向远程docker机器.我理解如何不同的遥控器之间,并说当地码头工人的开关机,但它不是我清楚如何从泊坞窗机切换回搬运工的MAC引擎.

docker

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

如何找到 postgresql 连接字符串所需的所有信息?

我经常遇到试图追踪所有信息的问题,例如主机、用户、密码、是否使用 ssl 等。有没有一种简单的方法可以从 psql 终端检索这些信息?

host     = "localhost"
port     = 5432
user     = "postgres"
password = "password"
dbname   = "database"
Run Code Online (Sandbox Code Playgroud)

我通常创建数据库,createdb但我不知道它使用的用户或密码。

database postgresql

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