我正在使用Simple Form和Ajax,我希望在成功提交表单后显示“成功提交”之类的通知(可以是flash)。我怎样才能做到这一点?
这是我的控制器:
def create
@order = current_order
@order_item = @order.order_items.new(order_item_params)
@order.user_id = current_user.id
@order.save
session[:order_id] = @order.id
end
和我的观点中的表单:
<%= form_for OrderItem.new, html: {class: "add-to-cart"}, remote: true do |f| %>
<div class="input-group">
<%= f.hidden_field :quantity, value: 1, min: 1 %>
<div class="input-group-btn">
<%= f.hidden_field :product_id, value: product.id %>
<%= f.submit "Add to Cart", data: { confirm: 'Are you sure?'}, class: "btn btn-default black-background white" %>
</div>
</div>
<% end %>
</div>
答案 0 :(得分:1)
您可以在提交表单时响应javascript请求。
控制器:
# app/controllers/mycontroller.rb
def create
@order = current_order
@order_item = @order.order_items.new(order_item_params)
@order.user_id = current_user.id
@order.save
session[:order_id] = @order.id
respond_to do |format|
format.js { flash[:notice] = "Created order" }
end
end
然后创建一个显示消息的视图:
# app/mycontroller/create.js.erb
<% flash.each do |key, value| %>
$('.add-to-cart').append('<%= j content_tag :div, value, class: "flash #{key}" %>')
<% end %>
它应该有用!
答案 1 :(得分:-1)
您可以使用bootstrap警报来实现它。 控制器:
def create
@order = current_order
@order_item = @order.order_items.new(order_item_params)
@order.user_id = current_user.id
if @order.save
flash[:success] = "Successfully Submitted"
end
session[:order_id] = @order.id
end
您可以在任何地方使用此
显示该Flash消息查看:
<% flash.each do |message_type, message| %>
<div class="alert alert-<%= message_type %>"><%= message %></div>
<% end %>