問題タブ [diaspora]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - ActionView::Template::Error (未定義のローカル変数またはメソッド「check_public」
メール通知に関連する diaspora* の問題に取り組んでいます。
非公開投稿: メール通知にリンク (テキストなし) を表示する
公開投稿: メール通知に概要とリンクを表示します
diaspora* へのプル リクエストは次のとおりです: https://github.com/diaspora/diaspora/pull/4508
私の Github リポジトリへのリンク: https://github.com/railsgirls-generator-app/diaspora/tree/4266-remove-content-from-email-notifications
次の行でエラーが発生します。
この問題を解決するにはどうすればよいですか?
devise - Devise::Mailer の設定 - diaspora smtp_envelope_from および smtp_envelope_to sendmail
私は同様の問題を抱えています。sendmail オプションを使用していますが、引き続きエラーが発生します
「メッセージを送信するには、SMTP From アドレスが必要です。メッセージの smtp_envelope_from、return_path、sender、または from アドレスを設定してください。」
Ruby コンソールから Mail gem をテストしましたが、完璧に動作します。sender_address
AppConfig は、配信方法が sendmail であることを報告し、ファイルに入力されたとおりであることも報告しapp/config/diaspora.yaml
ます。Mail.delivery_method
sendmail も返します。設定@smtp_envelope_from = 'myemail@example.com'
するgems/mail-2.5.4/lib/mail/message.rb
と、同様であるが異なるエラーメッセージが表示されます..
「メッセージを送信するには SMTP To アドレスが必要です。メッセージの smtp_envelope_to、to、cc、または bcc アドレスを設定してください。」
このエラーが で発生したため、 inlib/mail/check_delivery_params.rb:9:in check_delivery_params'
を設定しようとしましたが、これらの設定を別の場所に適用する必要があることがわかっているため、これをテストするだけです (このスレッドは、これに対処することができる唯一のスレッドのようです) を設定した後に受け取るエラーは@smtp_envelope_to = 'myrecipient@example.com'
message.rb
@smtp_envelope_to
"myrecipient@example.com" の undefined methodmap':String
最初は が正しく設定されていないのではないかと心配していましたdelivery_method
が、トレースでは、check_delivery_params が呼び出される前に、delivery に入ることが示されていますlib/mail/network/delivery_methods/sendmail.rb:50:in
。そうではありません。これは、1 週間ほど前に複製された標準インストールです。を使用しRVM and ruby-1.9.3-p484
ます。プロダクション モードと開発モードで同じエラーが発生します。メソッド署名のような戦略を使用しgrep -r
て、設定および初期化されているファイルと属性を見つけやすくしています。configurate が値を設定する方法AppConfig
と、正確にどのように機能するかを理解するのに苦労していますDevise::Mailer
。
これに関する私の最大の疑問は、ディアスポラ アプリケーションのどこで setsmtp_envelope_from
およびのメソッドを呼び出すsmtp_envelope_to
か、ディアスポラでこれらを設定する標準的な方法は何か、それらが設定されていることをどのように確認するかということです。の成功メールを取得しようとしていpassword_instructions
ます。これは工夫次第のようです。
しばらくの間、解決策を探していたので、助けてください。sendmail
それが必ずしも問題ではないので、私はあきらめる準備ができていません. また、私が使用しているバージョンにはconfig/initializers/devise.rb
、前述の属性がありません。何らかの形で自動的に設定されているように見えますが、これはロジックからデータを分離するのに適していますが、実際には機能していないように見えるときは少し面倒です。
さらに: 調査 次のコマンドを発行して、問題の属性が設定されている場所を確認しましたが、期待される値に設定されている単一のファイルが返されず、初期化されています。
~$ grep -r smtp_envelope_from
.irb-history:Mail.smtp_envelope_from
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/check_delivery_params.rb: mail.smtp_envelope_from.blank の場合?
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/check_delivery_params.rb: raise ArgumentError.new('メッセージを送信するには SMTP From アドレスが必要です。メッセージ smtp_envelope_from、return_path、sender、または from アドレス。')
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/check_delivery_params.rb: [mail.smtp_envelope_from, mail.smtp_envelope_to, メッセージ]
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/message.rb: @smtp_envelope_from = nil
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/message.rb: # mail.smtp_envelope_from = 'マイケル'
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/message.rb: # mail.smtp_envelope_from #=> 'mikel@test.lindsaar.net'
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/message.rb: # mail.smtp_envelope_from 'マイケル'
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/message.rb: # mail.smtp_envelope_from #=> 'mikel@test.lindsaar.net'
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/message.rb: def smtp_envelope_from( val = nil )
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/message.rb: self.smtp_envelope_from = val
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/message.rb: @smtp_envelope_from || リターンパス || || 送信者 || from_addrs.first
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/message.rb: # mail.smtp_envelope_from = 'マイケル'
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/message.rb: # mail.smtp_envelope_from #=> 'mikel@test.lindsaar.net'
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/message.rb: def smtp_envelope_from=( val )
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/message.rb: @smtp_envelope_from = val
何が見つかるかを確認するために実行する他のコマンド
~$ grep -r smtp_envelope_to
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/check_delivery_params.rb: mail.smtp_envelope_to.blank の場合?
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/check_delivery_params.rb: raise ArgumentError.new('メッセージを送信するには SMTP To アドレスが必要です。メッセージ smtp_envelope_to、to、cc、または bcc アドレス。')
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/check_delivery_params.rb: [mail.smtp_envelope_from, mail.smtp_envelope_to, メッセージ]
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/message.rb: @smtp_envelope_to = nil
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/message.rb: # mail.smtp_envelope_to = 'マイケル'
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/message.rb: # mail.smtp_envelope_to #=> 'mikel@test.lindsaar.net'
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/message.rb: # mail.smtp_envelope_to ['Mikel', 'Lindsaar']
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/message.rb: # mail.smtp_envelope_to #=> ['mikel@test.lindsaar.net', ' lindsaar@test.lindsaar.net']
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/message.rb: def smtp_envelope_to( val = nil )
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/message.rb: self.smtp_envelope_to = val
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/message.rb: @smtp_envelope_to || 行き先
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/message.rb: # mail.smtp_envelope_to = 'マイケル'
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/message.rb: # mail.smtp_envelope_to #=> 'mikel@test.lindsaar.net'
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/message.rb: # mail.smtp_envelope_to = ['Mikel', 'Lindsaar']
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/message.rb: # mail.smtp_envelope_to #=> ['mikel@test.lindsaar.net', ' lindsaar@test.lindsaar.net'] .rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/message.rb: def smtp_envelope_to=( val )
.rvm/gems/ruby-1.9.3-p484@diaspora/gems/mail-2.5.4/lib/mail/message.rb: @smtp_envelope_to =
grep: aquota.user: 権限が拒否されました
diaspora/log/development.log:ArgumentError (メッセージを送信するには SMTP To アドレスが必要です。メッセージの smtp_envelope_to、to、cc、または bcc アドレスを設定してください。):
diaspora/log/development.log:ArgumentError (メッセージを送信するには SMTP To アドレスが必要です。メッセージの smtp_envelope_to、to、cc、または bcc アドレスを設定してください。):
grep: lost+found: 権限が拒否されました
ご覧のとおり、これらの設定は で初期化されていますがmail/lib/mail/message.rb
、他の場所では適切な値が与えられていません。メソッドにエイリアス名が付いているか、この手法を使用してメソッドを見つけることができなかった何らかの方法で設定されている可能性はありますか? ディアスポラがサポートしていない新しい要件や変更がある可能性はactionmailer
ありますか? (インストール wiki では、特にこのバージョンを使用するように指示されています。)では、デフォルトの送信元アドレスを指定できますが、間違っていなければ、送信先アドレスをメール ブロックに設定する必要があります。mail
ruby-1.9.3-p848
config/diaspora.yaml
これについてはまだ途方に暮れています助けてください
エラーに応じてさらにテストを行う
"myrecipient@example.com" の undefined methodmap':String
lib/mail/check_delivery_params.rb:9:in check_delivery_params'
配列を期待していたので、@smptp_envelope_to = ['myreciepient@example.com'] を設定gems/mail-2.5.4/lib/mail/message.rb
し、password_reset_instructions を要求したときに電子メールは成功しましたが、電子メールの内容は空でした。今、どこかで、または最後に言及されたファイルを猫にするときに問題を検討して~/diaspora/app/mailers/diaspora_devise_mailer.rb
い~/.rvm/gems/ruby-1.9.3-p484@diaspora/gems/devise-3.0.2/app/mailers/devise/mailer.rb
ます
私は今、devise/app
この時点で問題がデバイスにあると信じています。Ruby のメーラーのハウツーをハッシュすると、この問題を特定するのに役立ちます。メッセージ ブロックはどこかに作成する必要がありますが、その場所は明らかではありません。メッセージ ブロックを作成する適切な場所を教えてくれる人がいれば、ちょっとした勝利のダンスをするかどうかを決めます。
また、これに関連する ~/diaspora/config/routes.rb の唯一のエントリは次のとおりです。
ディアスポラでこのバグを調べるべきではないかどうか興味があります
これは、github から diaspora を再度複製することで、魔法のように修正されました。これは、新しいバージョンの ruby も必要とする新しいバージョンでした。標準プロセスを経て、すべてが機能します。ご覧いただきありがとうございます。私はまだ掘り続けて、何が違うのかを見ていきます
ruby-on-rails - ディアスポラサーバーを起動できなくなりました
数時間前まで、ディアスポラポッドに問題はありませんでした。ディアスポラが消えて以来、それを元に戻すことは不可能でした.
まず、ここに私の端末出力があります:
出力: /script/get_config.rb server.rails_environment => production
出力: echo $RAILS_ENV (空白)
出力: echo $RACK_ENV (空白)
これは私の sidekiq.log の終わりです:
ruby-on-rails - Diaspora のポート 80 をバインドできません
./script/server コマンドの実行中にこのエラーが発生します。
他のポートでも実行できますが、ポート 80 で Diaspora を実行したいと考えています。
FATAL -- : リスナー追加エラー addr=0.0.0.0:80 23:14:23 web.1 | /home/diaspora/.rvm/gems/ruby-2.0.0-p353@diaspora/gems/unicorn-4.8.0/lib/unicorn/socket_helper.rb:185:in `bind': 許可が拒否されました - bind(2) (エラー番号::EACCES)
これを解決するのを手伝ってください。前もって感謝します!!
bundler - Diaspora 管理者のセットアップが失敗する
ポッドを作成した後、次を実行して管理者ユーザーをセットアップしようとしました。
しかし、これは失敗しました:
これを乗り越える方法を知っている人はいますか?