質問

のコード生成restful_authenticationですが、通常の取得'localhost'のURLを登録-活性化します。私が作り出してしまおうというもののようなことではなく:

def signup_notification(user, host)
  setup_email(user)
  @subject    += 'Please activate your new account'

  @body[:url]  = "http://#{host}/activate/#{user.activation_code}"
end

しかしながら、実際に電話のメールはオブザーバーこれができないこ

UserMailer.deliver_signup_notification(user, request.host_with_port)

からの依頼の方法が利用できないモデルです。には、どうするのがベストなのかい?

ことも考えていましたが格納UrlたドメインのYAMLファイルをロードす起動時にそのポートによる承諾がある場合を除き、するのではない。

また、私は考えていたのを静的なクラス変数のどこかに設定した搬入時にアプリケーションですが、とにかく行っています。請求の方法を用initializers?

他のヒント

ActiveMailerを使用し、私はこれをconfig/envrionments/production.rb

config.action_mailer.default_url_options = { :host => "my.host.com" }

モデルにおいてapp/models/event_mailer.rb

def new_event(event)
    recipients  EventMailer::NO_REPLY
    bcc         event.emails('new_event')
    from        EventMailer::FROM_EMAIL
    subject     "#{EventMailer::SUBJECT_HEADER} Event Updated :: #{event.title}"
    content_type    "text/plain"
    body        :event => event
end

そしてメーラービューでapp/views/event_mailer/new_event.rb

You can view the event by going to: <%= url_for(:controller => "events", :action => "show", :id => @event.id, :only_path => false) %>

メールで生成します:

You can view the event by going to: http://my.host.com/events/11

私は同じ問題も、こんどろ風mikiモデルを作ってみを行

  1. ユーザーモデルを追加する:スattr_accessible、その後を追加する方法

    def host=(value)
      write_attribute :host, value
    end
    
  2. ユーザーコントローラの方法と送信メールなどを活か

    @user.host = request.host_with_port

以降ってるやつばっかしだか手伝on railsなって、誰かがち-ベストプラクティスの溶液にこの問題です。

ホストサーバーは、要求のホストヘッダーで発見されたことによってアクセスされます。あなたは(SANEあるレールを想定)モデルで、それへのアクセス権を持つべきではありません。あなたは、コントローラにリクエストオブジェクトにアクセスできる場合は、DBからモデルオブジェクトを引っ張ったときにしかし、あなたはあなたのモデルフィールドにその値を挿入できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top