Rails5.1.3でWebアプリケーション制作の勉強をしています。
メールの送信機能を作成しています。送信自体はうまく動いているのですが、
リンクを貼ってページ移動させようとしリンク先をクリックするとエラーになってしまい
解決できませんのでどなたか教えていただけないでしょうか?宜しくお願いします。
コード、エラーは以下になります。
SMTPサーバー経由でメールを送信するための設定 config/environments/development.rb config.action_mailer.delivery_method = :smtp config.action_mailer.raise_delivery_errors = true config.action_mailer.smtp_settings = { address: 'smtp.gmail.com', port: 587, user_name: 'satou.itirou@example.com', password: 'password', domain: 'example.com' }
html.erbに以下のコードを記述しました。 25 <%= link_to 'こちら', { host: 'www.example.com', controller: :rules, action: :welcome } %>
「こちら」をクリックすると以下のエラーが出ます。
ActionController::UrlGenerationError in Rails::Mailers#preview Showing /home/vagrant/chibi/chibi/app/views/direct_mailer/d_mail.html.erb where line #25 raised: No route matches {:action=>"welcome", :controller=>"rules"} Extracted source (around line #25): 23 <p>ご協力のほどよろしくお願い申し上げます。</p> 24 25 <%= link_to 'こちら', { host: 'www.example.com', controller: :rules, action: :welcome } %>
このようにルーティングエラーが発生しています。しかし、routs.rbには記述していますし、
メソッドも定義しています。テンプレートも作成しています。
routes.rb resource :rule do get :welcome end
class Visitor::RulesController < Visitor::Base def welcome render action: 'welcome' end
ブラウザから直接 http://example.com:3000/visitor/rule/welcome でアクセスし表示はできます。
このページは app/controller/visitor/rules_controller.rb app/view/visitor/rule/welcome.html.erb で表示できています。
このページに移動するようにリンクを貼りたいのです。どのようにリンク先を指定すればいいのでしょうか?
どなたか教えていただけないでしょうか?よろしくお願いします。
追記
<%= link_to 'こちら', 'http://example.com:3000/visitor/rule/welcome' %>
このようにリンクを貼るとエラーは出ませんが、何も表示されない真っ白な画面になります。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。