如何在 html 中引用我的 ruby 代码

How to href my ruby code in an html

目前我的 html 中有下面的代码,它是通过电子邮件发送的。我想让它在这里说成 hyperlink。我已经看到并知道如何做 link_to,但我认为这不适用于 html 格式,或者如果可以,我不确定如何正确地做到这一点。

此代码使用参数将用户定向到我的网络应用程序中的 link。

 <%=landlord_page_url(@user)%>

如有任何帮助或见解,我们将不胜感激。

你可以做到这一点,你只需要supply a host to use to generate the URL

我认为最简单的方法是使用这样的东西:

application.rb

config.action_mailer.default_url_options = {
  host: "#{ secrets.uri['host'] }#{ ":#{ secrets.uri['port'] }" if secrets.uri['port'].present? }",
  protocol: secrets.uri['protocol'] }

secrets.yml

shared: &shared       
  uri:
    protocol: http
    host: localhost
    port: 3000

development:
  <<: *shared

test:
  <<: *shared

production:

  uri:
    protocol: <%= ENV['URI_PROTOCOL'] %>
    host: <%= ENV['URI_HOST'] %>
    port: <%= ENV['URI_PORT'] %>

好的,假设您有一个名为 MyMailer 的 ActionMailer,只有一个方法 send_link。就像您对控制器操作所做的那样,在 send_link 方法中设置任何实例变量,以供电子邮件视图用于呈现。

app/mailers/my_mailer.rb

class MyMailer < ActionMailer::Base
  default from: 'myemail@mydomain.com'

  def send_link(user, host)
    @user = user
    @host = host

    mail(to: user.email, subject: "Here is your link")
  end
end

接下来为此创建一个视图,就像您为控制器操作视图所做的那样,并使用任何必要的 erb 编写您的 html。

app/views/my_mailer/send_link.erb

<p>Dear <%= @user.forename %>,</p>

<p>Here is your link</p>

<p><%= link_to 'Click Me', landlord_page_url(@user, host: @host) %></p>

大功告成。