首页 > 解决方案 > 保存从footer.html.rb rails点击按钮的输入

问题描述

我在 Shared 文件夹中有 _footer.html.rb 文件。我确实有一个电子邮件输入字段和按钮。我希望用户单击以将电子邮件保存到数据库。

这是_footer.html.rb

   <div class="col-md-6 mt-md-0 mt-3">
    <h5 class="text-uppercase">Subscribe Today</h5>
    <p>Get our newsletter and stay current on rental deals and specials..</p>
    <div >
      <div style="text-align: -webkit-center; padding-bottom: .9rem;">
        <input id="email" placeholder="Your Email" type="text" class="form-control" style="width: 28rem;"></input>
      </div>
      <div class="input-group-btn">
        <button class="btn btn-primary" label="Subscribe" type="button"><span class="btn__label">Subscribe</span></button>
      </div>
    </div>
  </div>

在此处输入图像描述

这是模型订阅.rb

class Subscription < ApplicationRecord
end

有没有办法通过为 _footer 创建一个 controller.rb 来保存电子邮件。因为我可能会将它们放在其他地方以及 _navbar 和 _footer 中?

标签: ruby-on-railsruby

解决方案


您可以定义一个控制器操作来继续用户的输入。

假设您在路线中有这个

post 'subscriptions', to: 'subscriptions#create', as: :subscriptions
def create
   Subscription.create(email: params[:email]
   render :js => "alert('Thank you for subscribing');"
   # or
   # create `app/views/create.js.erb` file and comment above `render` statement 
end

form然后,使用选项包装输入remote: true以进行 Ajax 调用

<%= form_tag(subscriptions_path, remote: true) do %>
    <%= text_field_tag :email  %>
    <%= button_tag 'Subscribe', type: 'submit' %>
<% end %>

推荐阅读