2016-06-22 8 views
0

シンプルフォームとAjaxを使用していて、フォームの送信が成功した後、「Successfully Submitted」のような通知を表示したいと思います。どうすればこれを達成できますか?シンプルフォームを送信した後の通知方法

この私のコントローラ:ビューで

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

http://stackoverflow.com/questions/36734020/how-to-:あなたはこの

ビューを使用して好きな場所

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 

あなたはそのフラッシュメッセージを表示することができますdisplay-messages-aka-flash-without-rendering-or-redirecting – nobilik

答えて

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

ブートストラップアラートを使用して達成することができます。 コントローラ:

<% flash.each do |message_type, message| %> 
     <div class="alert alert-<%= message_type %>"><%= message %></div> 
    <% end %> 
関連する問題