- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 Rails 应用程序中,我有一个邀请模型:
class Invite < ActiveRecord::Base
belongs_to :calendar
belongs_to :sender, :class_name => 'User'
belongs_to :recipient, :class_name => 'User'
before_create :generate_token
def generate_token
self.token = Digest::SHA1.hexdigest([self.calendar_id, self.recipient_role, Time.now, rand].join)
end
end
通过以下迁移:
class CreateInvites < ActiveRecord::Migration
def change
create_table :invites do |t|
t.string :email
t.integer :calendar_id
t.integer :sender_id
t.integer :recipient_id
t.string :recipient_role
t.string :token
t.timestamps null: false
end
end
end
我使用 Invite 模型创建邀请,通过以下 InvitesController
:
class InvitesController < ApplicationController
def create
@invite = Invite.new(invite_params) # Make a new Invite
@invite.sender_id = current_user.id # set the sender to the current user
@calendar = Calendar.find_by_id(@invite.calendar_id)
authorize @calendar
if @invite.save
InviteMailer.invite(@invite).deliver #send the invite data to our mailer to deliver the email
else
format.html { render :edit, notice: 'Invitation could not be sent.' }
end
redirect_to calendar_path(@calendar)
end
private
def invite_params
params.require(:invite).permit(:email, :calendar_id)
end
end
这是 InviteMailer
:
class InviteMailer < ApplicationMailer
def invite(invite)
@link = new_user_registration_path invite_token: invite.token
mail to: invite.email, subject: "Calendy Invitation"
end
end
这是相应的邮件程序 View :
You've been invited to join a calendar.
Click here to view this calendar: <%= @link %>
当我创建邀请并检查服务器上的日志时,我可以看到邮件程序生成了以下电子邮件:
InviteMailer#invite: processed outbound mail in 13.7ms
Sent mail to example@gmail.com (57.6ms)
Date: Tue, 15 Sep 2015 10:50:13 -0700
From: from@example.com
To: example@gmail.com
Message-ID: <55f85a5515500_1cf93ff0b4ef71144524c@XXX.local.mail>
Subject: Calendy Invitation
Mime-Version: 1.0
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: 7bit
<html>
<body>
You've been invited to join a calendar.
Click here to view this calendar: /account/sign_up?invite_token=cf7fb2ab8ad0774a99c1cdf7baf0bd44796c2f0f
</body>
</html>
Redirected to http://localhost:3000/calendars/3
我在这里遇到了两个问题:
我不明白为什么我有 /account/sign_up?invite_token=cf7fb2ab8ad0774a99c1cdf7baf0bd44796c2f0f
在电子邮件中而不是 http://localhost:3000/calendars/3/account/sign_up?invite_token=cf7fb2ab8ad0774a99c1cdf7baf0bd44796c2f0f
我不确定上面的链接是由 <%= @link %>
生成的, 是可点击的。当我尝试使用 <%= link_to @link %>
使其可点击时, as recommended here ,我收到以下错误:
ActionController::UrlGenerationError in Invites#create没有路线匹配 {:action=>"index"}
您已受邀加入日历。单击此处查看此日历:<%= link_to @link %>
错误来自 Click here to view this calendar: <%= link_to @link %>
行
如果您对上述项目有任何见解,我将不胜感激。
有什么想法吗?
最佳答案
使用 new_user_registration_url
而不是 new_user_registration_path
_path
助手提供站点根目录相对路径。大多数时候你应该使用它。
_url
助手提供绝对路径,包括协议(protocol)和服务器名称。我发现在服务器上创建指向应用程序的链接时,我主要在电子邮件中使用这些。它们主要用于提供外部链接。 (想想电子邮件链接、RSS 以及 YouTube 视频“共享”部分下的复制和粘贴 URL 字段之类的内容。)
并且在邮件类中使用 link_to
是一件坏事
class InviteMailer < ApplicationMailer
def invite(invite)
@invite = invite
mail to: invite.email, subject: "Calendy Invitation"
end
end
邮件程序 View :
Click here to view this calendar: <%= link_to "link", new_user_registration_url(invite_token: @invite.token) %>
关于ruby-on-rails - rails 4 : display clickable link in mailer view,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32593232/
我通常从以下位置获取代码:https://www.w3schools.com .这个代码还有一个 Accordion ; 但是,当我使用链接 -> 到 Accordion 时, Accordion 不
我见过的所有 JNI 指南(例如 JNI runtime linking )都建议我将 JNI 库链接到 libjvm.so: $ gcc -I${JAVA_HOME}/include -c -o t
实现以下目标的正确 URL 格式是什么: 使用 Universal Link 在 iOS 上的另一个应用程序中打开 Google map 应用程序。 根据两个坐标设置目的地:纬度和经度,并让用户选择交
我已经查看了 Microsoft 的 MSDN 和整个网络,但我仍然无法很好地了解它是什么。 这是否意味着已完成的程序在执行期间的不同时间加载 DLL,而不是在启动时一次性加载所有 DLL? 我完全偏
我有一个看起来像这样的 css: .browse-link A:link { color: #F6CA4C; text-decoration: none; } .browse-link
当我点击“产品”链接时,它突然指向#link。我怎样才能使它的外观看起来像滚动然后转到产品?请帮帮我。 vStudy function big(x){
我想在保存之前更改从输入字段中获取的值。 params[:link]['url'] = "www.facebook.com/redbull" 现在我只想将“redbull”放入数据库。以下代码失败,因
我正在使用链表编写程序(真是一场噩梦)。 无论如何,该程序的目的是输入 8 个字符,然后让程序将字符打印回给您,并以相反的顺序打印回字符,当然是使用链表。 到目前为止我已经明白了。它有很多错误(我认为
基本上,我删除了 anchor 按钮,因此链接窗口中不应该有指向 anchor 选项的链接。 有什么方法可以删除该下拉选项 ? 最佳答案 想通了 if ( dialogName == 'link' )
我的本地(和远程)SQL SERVER 2005 管理员都声称“允许链接服务器是一个安全问题”并禁止在此处使用它们。 (哈?) 无论如何,有没有办法在没有链接服务器的情况下做类似的事情? SELE
如果我有: linkedlist1= 1,2,3,4; 和 linkedlist2= 5,6,7; 如果我调用: linkedlist2.set(0,9999) 它会更改为 linkedlist2 =
首先,如果这个问题看起来很愚蠢,我很抱歉,但我仍在学习 React 和 html。所以问题是我的 react 代码中有一个按钮标签,它为我提供了一些关于进入我提供的特定链接的逻辑。我的 Button.
我将制作一个文本 block ,这样如果您单击一个单词,它就会被词汇替代品所替换。 例如“fearful-of-cats”是“ailurophobic”的词汇替代品,因为如果您在任何文本中将后者替换为
我有以下代码 Can you click me? 目标是我可以点击“你能点击我吗”框并转到 google 并在包含 div 的任何其他地方
这是一个案例: 默认情况下,如果我点击#2、#3、#4、#5,我将被重定向到#1。 如果我想在没有 #1 激活的情况下点击输入,我该如何修复 CSS? 提前
有没有什么快速的方法可以使 :visited 链接的颜色与链接本身的颜色相同? 例如: * {color:black} a:link {color:blue} a:visited {color:inh
我读到从 iOS 9 开始,引入了通用链接。请解释深层链接和通用链接之间的区别。我的目标是,一个链接将通过邮件发送给客户。让邮件说有一个项目 A 的报价和一个链接。单击链接时 如果安装了该应用程序,则
因此我们需要对 CSS anchor 伪类使用以下顺序 a:link { color: red } a:visited { color: blue } a:hover { color
我组件的当前路径是http://localhost:3000/dashboard/questionnaire/5bf79ff4c45a150015cef7a9在这个组件里面有 Financials 如
我 rsync 目录“Promotion”包含两台具有不同目录结构的机器之间的绝对符号链接(symbolic link)。因此绝对符号链接(symbolic link)在两台机器上都不起作用。为了使它
我是一名优秀的程序员,十分优秀!