0

すべてのページに存在するフォームを作成したいと思います。メールアドレスを登録できるシンプルなフォームです。だから私の質問は、すべてのコントローラーで「 @mailer = MailingList.new」のインスタンスを配置するのではなく、サイト全体をカバーするようにアプリケーションコントローラーを使用しますか? これは私がやろうとしたことです

アプリケーションコントローラー

  def mail_list
    @mailer = MailingList.new
  end

header.html.erb

    <% form_for @mailer do |f| %>
        <%= f.text_field :email %>
    <% end %>

そして私はエラーが発生します

undefined method `mail_list_path' for #<#<Class:0x00000103433240>:0x0000010166fc68>

理由は分かると思います。また、コントローラーに「保存」メソッドがないことも認識しているため、ページが読み込まれたとしても送信時に機能しませんが、少なくともフォームが表示されることを期待していました。これを達成するための最も一般的な方法は何ですか? どこが間違っていますか?

おまけとして: フォーム送信時にページが更新されず、データがAjax経由でデータベースに送信されることが望ましいでしょう。これがどのように機能し、どのように実装できるかを説明するための優れたチュートリアルまたはガイドを教えてください。

私はレールに慣れていないので、説明が不十分な可能性があることをお詫びし、お時間をいただきありがとうございます。

4

0 に答える 0