我在“共享”文件夹中有_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>
这是模型subscription.rb
class Subscription < ApplicationRecord
end
是否可以通过为_footer创建controller.rb来保存电子邮件。因为我可能在_navbar和_footer中还有其他位置?
答案 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 %>