保存来自footer.html.rb滑轨的按钮单击输入

时间:2019-06-27 06:44:23

标签: ruby-on-rails ruby

我在“共享”文件夹中有_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>

enter image description here

这是模型subscription.rb

class Subscription < ApplicationRecord
end

是否可以通过为_footer创建controller.rb来保存电子邮件。因为我可能在_navbar和_footer中还有其他位置?

1 个答案:

答案 0 :(得分:2)

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

假设您在路线中有这个

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 %>