小编Mik*_*rin的帖子

为什么Rails忽略(伪)嵌套事务中的回滚?

根据文档ActiveRecord :: Transactions :: ClassMethods,非新嵌套事务将忽略回滚.来自文档:

User.transaction do
  User.create(username: 'Kotori')
  User.transaction do
    User.create(username: 'Nemu')
    raise ActiveRecord::Rollback
  end
end
Run Code Online (Sandbox Code Playgroud)

raise ActiveRecord::Rollback被忽略,因为它是在一个子事务(或者更确切地说,它仍然是在父事务中,而不是自己的).我不明白为什么两个都会忽略回滚调用?我可以看到,因为子'事务'不是真正的事务,它不会回滚'Nemu'块,但为什么它不会触发父项的回滚?子事务是否以某种方式隐藏了回滚?

换句话说,为什么似乎无法从嵌套子项中回滚父事务?

ruby mysql activerecord transactions ruby-on-rails

17
推荐指数
2
解决办法
4765
查看次数

使用CSS显示徽标的正确方法是什么?

我一直在学习CSS最近,和教程系列,我看说要显示标志图像的最好办法是包装在一个H1标签的文本,然后设置为标签的背景图像的CSS样式,用文本缩进-99999或类似的大数字.

这似乎令人难以置信的hackish和不优雅.似乎使用CSS隐藏文本对于SEO来说是一个很大的禁忌(因为通过CSS隐藏文本是不受欢迎的).

我还读到应该避免使用img,因为徽标本身并不是真正的内容,所以应该降级到编码的设计方面(即CSS).

目前对此有何共识?

css graphical-logo

11
推荐指数
3
解决办法
6万
查看次数

如何将has_and_belongs_to_many迁移到has_many?

我们在两个模型之间有一个简单的has_and_belongs_to_many关系.我们想在该模型中添加一些参数,因此我们需要将其更改为has_many:通过某种模型.

据我所知,我们需要添加一个id列(以及我们想要的任何列).但是,我不清楚100%如何做到这一点.如果我们添加一个整数列:id,rails会知道那是'id'主键吗?

我们正在使用最新的3.x.

ruby-on-rails

10
推荐指数
4
解决办法
6709
查看次数

如何将params发送到FactoryGirl特征?

我正在编写一些测试,调用FG创建一个特性,即after_create,创建一个关联的对象.有没有办法在制作FG时将参数发送到相关产品,或者之后是否需要设置它们?

testing rspec factory-bot

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

Paperclip是否可以生成新图像(没有源)?

我正在根据用户输入构建图像 - 背景将是图像或颜色,然后可能会或可能不会在顶部组成一些其他图像.

通过回形针文档检查,它提到您可以使用ImageMagik来后处理图像,并且如果它还没有图像,则后处理将永远不会触发.

如果我能够使imagemagik脚本编写/颜色/调整图像大小,有没有办法让它生成图像,或者我需要包含某种黑客像素上传(然后后处理到图像我想要)?

ruby-on-rails image imagemagick paperclip

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

如果存在则更新,否则什么也不做?

当且仅当模型存在时,我正在尝试更新模型的值.如果没有,我什么都不做.搜索似乎只返回更新或创建问题/答案,但我不想创建.

我知道我可以用一个简单的方法做到:

found = Model.find_by_id(id)
if found
  update stuff
end
Run Code Online (Sandbox Code Playgroud)

但是,我觉得有一种方法可以在一次调用中执行此操作,而无需分配任何临时本地值或执行if.

如果不存在噪声错误,如何编写rails调用来更新记录?

最新的Rails 3.x

ruby ruby-on-rails

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

使用html_options的Rails link_to只是创建一个包含?html_options的网址

<%= link_to('Repay', controller: 'payments', 
                             action: 'repay', 
                             from: r, to: rx,
                             html_options: {class: "tiny button"}) 
                             %>
Run Code Online (Sandbox Code Playgroud)

Rails文档说你可以传递html_options,它将用于向生成的html添加属性,但它所做的只是添加?html_options = {class ...到url,而不是实际生成与类的链接.

我试过没有html_options,同样的事情.不确定我做错了什么.

ruby-on-rails

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

has_many依赖:destroy正在搜索错误的列名

我有一个类:klass has_many:otherklass,它是依赖的::destroy。

但是,当我尝试销毁:klass时,rails正在寻找otherklass.namespace_klass_id = klass.id,可以理解的是没有找到任何东西。

有没有办法明确告诉rails:otherklass使用.namespace_klass_id作为otherklass上的列?

ruby-on-rails ruby-on-rails-3

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

获取 Typescript 中命名空间的所有值?

节点版本: 6.11.3

打字稿版本: 2.1.6

我们的项目中有很多枚举,大部分看起来像这样:

export type ThingType = "thing1" | "thing2";

export namespace ThingType {
    export const THING_ONE = "thing1";
    export const THING_TWO = "thing2";
}
Run Code Online (Sandbox Code Playgroud)

我想在端点中向需要这些字符串值的端点的使用者公开这些值。所以我创建了一个如下所示的端点:

const enums = {
    thingType: ThingType,
    ...
}
Run Code Online (Sandbox Code Playgroud)

返回的 json 看起来像:

"data": {
    "thingType": {
        "THING_ONE": "thing1",
        "THING_TWO": "thing2"
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望它的输出如下:

"data": {
    "thingType": ["thing1", "thing2"]
}
Run Code Online (Sandbox Code Playgroud)

对于普通的 javascript 对象,这相当简单,我只需添加到端点values()的末尾即可。ThingTypevalues()不存在于 TS 中的命名空间或枚举上。我在 Typescript 中的命名空间文档中没有找到任何内容,但我觉得一定有一些东西可以让我轻松获取枚举值。

javascript enums typescript

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