- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
查看此问题演变的更新
在我的网站上,每个用户都有一个仪表板,他/她可以在其中单击一个链接来接受或拒绝请求。根据单击的内容,请求记录随后会使用相关状态进行修补。为了让用户更轻松,我试图将此仪表板嵌入到发给他们的电子邮件中,这样他们就不必直接访问该网站;想想这样一封电子邮件:
你好,
您有以下请求,请单击请求旁边的接受/拒绝
....
到目前为止,实现这项工作的唯一方法是为电子邮件中使用的链接提供一组并行的 GET 路由,而不是为实际网站仪表板中使用的链接使用 PATCH 路由。
想知道是否有更好的方法?
路线
patch 'inventories/:id/accept', to: 'inventories#accept', as: 'lender_accept'
patch 'inventories/:id/decline', to: 'inventories#decline', as: 'lender_decline'
get 'inventories/:id/accept_email', to: 'inventories#accept', as: 'lender_accept_email'
get 'inventories/:id/decline_email', to: 'inventories#decline', as: 'lender_decline_email'
电子邮件中的链接
<%= "#{link_to 'ACCEPT', lender_accept_email_url(borrow), method: :patch} or #{link_to 'DECLINE', lender_decline_email_url(borrow)}" %>
网站仪表板上的链接
<%= "#{link_to 'ACCEPT', lender_accept_path(borrow), method: :patch} or #{link_to 'DECLINE', lender_decline_path(borrow), method: :patch}" %>
更新
好吧,尝试使用 button_to
生成一个 POST 表单,以避免使用 GET 执行 POST,就像上面的“不完整”解决方案一样,仍然无法正常工作...
路线:
post 'inventories/:id/accept', to: 'inventories#accept', as: 'lender_accept'
post 'inventories/:id/decline', to: 'inventories#decline', as: 'lender_decline'
邮件程序 View :
<%="#{button_to 'YES', lender_accept_url(borrow), method: :post, id: "accept #{borrow.id}", style: "background-color:green; color: white; width: 40px; display: inline"} %>
<%="#{button_to 'NO', lender_decline_url(borrow), method: :post, id: "decline #{borrow.id}", style: "background-color:gray; width: 40px; display: inline"}" %>
我也在电子邮件中做了一个检查元素,只是为了确认 button_to
正在生成适当的代码:
<form action="inventories/2037/decline" method="post" target="_blank" onsubmit="return window.confirm("You are submitting information to an external page.\nAre you sure?");"><div><input style="background-color:gray;width:40px;display:inline" type="submit" value="NO"></div></form>
<div>
<input style="background-color:gray;width:40px;display:inline" type="submit" value="NO">
</div>
</form>
在我的邮件程序设置中,我将主机正确设置为我的域名,所以当我收到电子邮件并单击按钮时,我会适本地转到 /inventories/2037/decline
,但是我仍然出现错误,因为显然日志显示我仍在尝试获取 GET...这是为什么呢?
2014-08-17T06:18:03.206205+00:00 app[web.1]: ActionController::RoutingError (No route matches [GET] "/inventories/2037/decline"):
最佳答案
Wondering if there's a better way of doing this?
发出 GET
请求是理想的解决方案。不要使用任何其他请求。它要么不受电子邮件客户端的支持,要么可能会增加很大的安全漏洞。
您误以为大型网站使用 post/patch
请求在电子邮件中执行此类操作。它们都使用 get
请求,它们包含一些 token ,当用户访问该网站时,这些 token 会绑定(bind)/触发特定操作。
OK tried the button_to to generate a form to POST to avoid using GET to do POST as was the "patchy" solution above, still not working.
显然,这是行不通的。没有 rails
JavaScript 文件。此外,即使你包含它也不会工作,因为 csrf-token
token 。 Rails 应用默认不允许提交外部表单。
我的建议是使用一些额外的参数比如 www.example.com/dashboard?take_action=accept
将用户发送到您的dashboard
并使用 JavaScript 触发所需的操作.这将是最佳实践。这将避免您使用 lender_accept
请求作为 get
。
更准确地说,不要这样做。
get 'inventories/:id/accept_email', to: 'inventories#accept', as: 'lender_accept_email'
get 'inventories/:id/decline_email', to: 'inventories#decline', as: 'lender_decline_email'
这很糟糕。因为,get
请求不是用于更新/删除
。
既然你想把这个actions
链接到你的email
,你应该把dashboard
链接和一些额外的参数。现在,每当您看到传递给电子邮件的那些参数时,使用 JavaScript 执行 accept/decline
操作。
更多:
关于ruby-on-rails - 电子邮件中的 Button_to 未发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25189818/
我注意到 button_to 有一个奇怪的行为。我有一些程式化的按钮。当 button_to 生成时,输入提交字段被放置在按钮元素内。最终发生的是单击按钮的内边缘不会将用户重定向到新页面。用户被迫直接
我目前正在使用 link_to: 'btn' do %> Edit Webcast 但我想对 button_to 做同样的事情,但是 button_to 必须有一个传递给它的第一个标签
我使用此代码允许用户向另一个用户发送邮件: 这给了我以下 html: 还有这位电子邮件之王: 我尝试使用 &body 设置邮件正文,但它不
我试图通过按钮的 onclick 方法调用一个函数。这是代码: "show_back(), return false" %> 但它不起作用,每次我单击按钮时都会出现错误 "没有响应 29
似乎 :class 控制的是父表单的类,而不是按钮本身。 我想将 btn primary 类添加到按钮。 如果我不能直接做,我可以使用表单类和SASS来做吗? (使用@extend 或类似的东西)?
我的代码: 'submit', :class => 'submit'} , {}%> 我想这样结束: 但我得到的是: 如何设置类? 最佳答案 HTML 选项是根据 the documentati
查看此问题演变的更新 在我的网站上,每个用户都有一个仪表板,他/她可以在其中单击一个链接来接受或拒绝请求。根据单击的内容,请求记录随后会使用相关状态进行修补。为了让用户更轻松,我试图将此仪表板嵌入到发
目前,我使用以下代码将params [:id]传递给line_items创建 但是,它会将id参数附加在我不希望button_to进行的url查询上。我想要的是通过隐藏的表单字段传递id参数。我可以
这很愚蠢,但我只是不知道如何设置由Rails button_to创建的输入元素的样式-是的,我已经一遍又一遍地阅读文档并尝试了示例。 这是我的ERB代码: 这将产生以下HTML:
我实现了一个基于 ajax 的按钮,用于在用户的“愿望列表”中添加和删除日历事件。该按钮充当切换开关。如果该事件已在他们的愿望 list 上,则会将其删除;如果没有,则会添加它。 我的问题是,当页面首
一直在尝试设计我的 button_to按钮,但是没有运气。我查看了 CSS 文件并使用了 #button {color:red;} , button {color:red;}和 .button {co
在我看来有这个按钮: 'pages', :action => 'yes', :id => p.id, remote: true}, {class: "yes_button"} %> 在 .css 中
我需要提交并保存一些数据。我需要表单中的一些帖子 ID: def message_post_collection_params params.require(:message_post).pe
我在使用 button_to 设置 Bootstrap 按钮组的样式时遇到了问题。 如上所示,我希望在底部有类似的东西,但目前我在使用“button_to”助手时遇到“4”按钮的问题。 我的代码是这样
我正在尝试将一个类应用到 Rails 3 中由 button_to 生成的表单。 :class 选项设置提交按钮的类,因此 docs告诉我们使用 :form_class 将类应用于表单。 例如 :d
我目前正在使用 ruby on rails 3 中的表单。所以在我的项目表单中,我有一个按钮可以让用户退出该项目。然而,奇怪的是,button_to 标签关闭了我的整个表单,我不能再使用我的提交按
基本上,我试图从 rails button_to 获取下拉按钮,这是通过 ajax 完成的,当有人点击该按钮时,它显示渲染的购物车 通过 ajax 渲染标记。 自举: rails button_t
在我的 Rails 3.2.3 应用程序中,我使用 Ajax 和 jQuery。页面上有一个链接,我想用一个按钮替换它。下面的代码运行完美 "home", :action => "test_meth
编写我的第一个非常简单的 Rails 应用程序,一个简单的管理应用程序,用于跟踪我们一个部门的工作。为人们生成的索引页面上有一个 link_to 来添加一个新人。我试图将其更改为 button_to
我在我的 Rails 应用程序中使用 Bootstrap,我想创建一个按钮组,其中包含一个使用 生成的按钮. 这是我的: "), project_steps_path(@proje
我是一名优秀的程序员,十分优秀!