ruby-on-rails – ActionMailer link_to显示 *** 作失败并显示“缺少必需的键:[:id]”

ruby-on-rails – ActionMailer link_to显示 *** 作失败并显示“缺少必需的键:[:id]”,第1张

概述我正在尝试将一个链接显示为由rails action mailer呈现的视图中的动作. mailer.rb class Mailer < ActionMailer::Base default from: "foo@bar.com" def catalog_download_request(email, catalog) @catalog = catalog mail({ 我正在尝试将一个链接显示为由rails action mailer呈现的视图中的动作.

mailer.rb

class Mailer < ActionMailer::Base  default from: "foo@bar.com"  def catalog_download_request(email,catalog)    @catalog = catalog    mail({         to: email    })  endend

的routes.rb

Rails.application.routes.draw do  scope "(:locale)" do    resources :catalogs,:path => I18n.t("routes.catalogs"),only: [:index,:show]  endend

development.rb:

config.action_mailer.default_url_options = { host: "http://localhost:3000" }config.action_mailer.asset_host = "http://localhost:3000"config.action_mailer.delivery_method = :smtpconfig.action_mailer.smtp_settings = {  address: "localhost",port: 1025}config.action_mailer.raise_delivery_errors = false

我打电话给邮件的模特:

class CatalogDownloadRequest < ActiveRecord::Base  belongs_to :catalog  after_create :send_mail  private  def send_mail    Mailer.catalog_download_request(email,catalog).deliver  endend

这就是我在我看来尝试的内容:

<%= link_to @catalog %>

错误:

ActionVIEw::Template::Error: No route matches {:action=>”show”,:controller=>”catalogs”,:format=>nil,:ID=>nil,:locale=>#} missing required keys: [:ID]

另一个尝试:

<%= link_to catalog_url(@catalog) %>

错误:

ActionVIEw::Template::Error: No route matches {:action=>”index”}

我怀疑这种情况正在发生,因为我在路线上的语言环境范围.

如果我使用<%= link_to catalog_url(@catalog)%>在另一种观点中,它有效.

解决:

<%= link_to catalog_url(:ID => @catalog.ID),catalog_url(:ID => @catalog.ID) %>
解决方法 ActionVIEw :: Template :: Error:No route匹配{:action =>“index”}的原因是:

link_to需要两个参数(text和url)(api).你只通过了一个.将文本作为第一个参数传递后,它将正常工作.

如果你真的想要,根据文档,你传递nil作为第一个参数,然后url作为第二个参数.

总结

以上是内存溢出为你收集整理的ruby-on-rails – ActionMailer link_to显示 *** 作失败并显示“缺少必需的键:[:id]”全部内容,希望文章能够帮你解决ruby-on-rails – ActionMailer link_to显示 *** 作失败并显示“缺少必需的键:[:id]”所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1284316.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存