小编hel*_*ion的帖子

如何从 Rails 中的活动存储关联在邮件程序中附加图像

在 Rails 5.2 中,我有一个使用 has_many_attached :images 的模型。我想发送一封电子邮件,其中包含所有关联图像作为附件。

我的邮件程序方法目前如下所示:

def discrepancy_alert(asset_discrepancy_id, options={})
  @asset_discrepancy = AssetDiscrepancy.find asset_discrepancy_id
  @asset_discrepancy.images.each_with_index do |img,i|
    attachments["img_#{ i }"] = File.read(img)
  end
  mail to: 'noone@gmail.com', subject: "email subject"
end
Run Code Online (Sandbox Code Playgroud)

显然,File.read 在这里不起作用,因为 img 不是路径,它是一个 blob。我在文档中找不到任何相关信息

问题一:

有没有一种 Rails 方法可以附加这样的斑点?

我可以使用以下内容代替:

@asset_discrepancy.images.each_with_index do |img,i|
  attachments["img_#{ i }"] = img.blob.download
end
Run Code Online (Sandbox Code Playgroud)

问题二:

下载方法可能会使用 RAM 日志,这种用法是否不明智?

看来,随着 ActiveStorage 的添加,rails 邮件程序将拥有一些用于两者之间交互的新方法......我在文档中没有看到任何内容。所有邮件程序附件[]示例都使用本地文件的路径。

actionmailer ruby-on-rails-5 rails-activestorage

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

如何将很棒的字体添加到rails 7(jsbundling)?

抱歉,这个话题已经被讨论过很多次了。但是,我刚刚使用 esbuild 创建了一个新的 Rails 7 应用程序,将 font-awesome-sass 添加到 gem 文件中,创建了 application.css.scss (已经有 application.bootstrap.scss )并放置了“@import 'font-awesome'; ” 在那里。

然后我将以下内容添加到视图页面:

      <i class="fa-sharp fa-solid fa-house"></i>
      <%= icon 'fa-brands', 'font-awesome' %>
Run Code Online (Sandbox Code Playgroud)

没有页面错误,没有控制台错误——但是,图标在页面上不可见(代码位于源代码中)。我一直在盲目地试图解决这个问题——但是,无法弄清楚为什么这不起作用。

我是否错过了任何步骤?

我已经验证了 gem 的安装说明,我还尝试跳过 gem 并通过纱线安装 fontawesome。视图中没有显示任何图标。

ruby-on-rails font-awesome esbuild ruby-on-rails-7

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

Apple swift - 应用程序如何连接到现有的heroku/S3数据库

我是iOS的新手,也是SWIFT的新手,没有以前的Obj-C经验.但是,我不是Ruby的新手.我在heroku上有一个基于web的应用程序,我开始学习SWIFT,所以我可以构建一个iOS对应的.在我开始之前,我需要围绕更大的图片包围我,我无法弄清楚这些应用程序如何连接到数据库.

iOS应用程序可以连接到S3数据库......并与网站共享该数据库吗?有关于这个过程的文档,我已经看过了.

amazon-s3 ios swift

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

嵌套的Pundit政策?

说我有一个属于用户模型的文档模型。用户has_many文档。DocumentPolicy可能包括此...

def edit?
  document.user_id == user.id
end
Run Code Online (Sandbox Code Playgroud)

但是,如果...要编辑文档怎么办,您还必须能够编辑该文档的父级(用户)。然后,该策略可能如下所示。

def edit?
  document.user_id == user.id &&
  policy(user).edit?
end
Run Code Online (Sandbox Code Playgroud)

这导致错误:

undefined method `policy' for #<DocumentPolicy
Run Code Online (Sandbox Code Playgroud)

我很好奇是否有更好的方法可以做到这一点。我处理不正确吗?似乎其他人会想做的事情……所以,我希望能对其他人如何做到这一点有所了解。

ruby-on-rails-4 pundit

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