Jak wygenerować link Unsubscription dla e-maili Actionmailer?

Mam tabelę KLIENCI o identyfikatorze, nazwie i polach e-mail i wysyłam im wiadomości e-mail za pomocą ActionMailer z SMTP innych firm.

Teraz chcę, aby klienci mieli opcję subskrypcji, więc dodałem kolumnę „subskrypcja” z wartością domyślną jako true.

Teraz, jak wygenerować link, który można umieścić w szablonie mailerów widoków, więc gdy użytkownik go kliknie, wartość subskrypcji zmieni się na false, więc w przyszłości klient nie otrzyma żadnego e-maila? Pamiętaj, że ci klienci nie są moimi użytkownikami aplikacji szyny, więc nie mogę korzystać z tego, co tutaj zasugerowałemRails 3.2 ActionMailer obsługuje wypisywanie linków w e-mailach

Znalazłem ten linkjak wygenerować link do wypisywania się z e-maila też, które wyglądały na pomocne, ale pomyślałem, że może za 3 lata, moglibyśmy mieć lepsze rozwiązanie

Oto mój kompletny kod -

#client.rb

attr_accessible :name, :company, :email

belongs_to :user
has_many :email_ids
has_many :emails, :through => :email_ids

before_create :add_unsubscribe_hash

private

def add_unsubscribe_hash
  self.unsubscribe_hash = SecureRandom.hex
end  

Oto plik Clients_controller.rb

# clients_controller.rb

  def new
    @client = Client.new

    respond_to do |format|
      format.html
      format.json { render json: @client }
      format.js
    end
  end

  def create
    @client = current_user.clients.new(params[:client])
    respond_to do |format|
      if @client.save
        @clients = current_user.clientss.all
        format.html { redirect_to @client }
        format.json { render json: @client }
        format.js
      else
        @clients = current_user.clients.all
        format.html { render action: "new" }
        format.json { render json: @client.errors, status: :error }
        format.js
      end
    end
  end

def unsubscribe
  @client = Client.find_by_unsubscribe_hash(params[:unsubscribe_hash])
  @client.update_attribute(:subscription, false)
end

Kod działa dobrze dla istniejących rekordów, a wypisywanie działa idealnie, mam tylko problem z tworzeniem nowych klientów.

Użyłem @client w metodzie unsubscribe, ponieważ używam tego obiektu w szablonie client_mailer.rb (używając @client lub po prostu używając klienta, oba działają!)

EDYCJA 2 - _form.html.erb

<%= simple_form_for(@client, :html => {class: 'form-horizontal'}) do |f| %>

    <%= f.input :name, :label => "Full Name" %>
    <%= f.input :company %>
    <%= f.input :email %>
    <%= f.button :submit, class: 'btn btn-success' %>
<% end %>

Skopiowałem cały stos torów nahttp://jsfiddle.net/icyborg7/dadGS/

questionAnswers(1)

yourAnswerToTheQuestion