0

私はウェブストア向けのAjaxベースのソリューションを作ろうとしています。だから私はカートを持っています、そしてユーザーが何かを追加するとき、私はすべてのページをリロードするのではなく、「カート」テンプレートだけをリロードしたいと思います。(ラインアイテムはカートに属します)ラインアイテムにメソッドを作成します。

#usualstuff
respond_to do |format|
if @line_item.save
format.html { redirect_to(store_url) }
format.js
format.xml { render :xml => @line_item,
:status => :created, :location => @line_item }
else
...

create.jsファイルを/views/line_itemsに配置します

だからここに問題があります。

実際に動作します。しかし、「カートに追加」ボタンをクリックしても、ページをリロードするまで何も変わりません。

サーバーログが表示されます:

Rendered line_items/create.js (0.0ms)

0.0ms-確かに何かが間違っていることを意味しますが、私はこれを理解することはできません。レールがそれを開くだけで何もしないように見えます。

理由は何でしょうか?

create.jsのコード

page.replace_html('cart' , render(@cart))
4

2 に答える 2

0

したがって、.js/.rjsテンプレートは3.0を超えるRailsでは機能しません。.js.erbである必要があります

于 2013-02-15T10:15:35.157 に答える
0

コントローラーでメソッドを呼び出して表示を更新するには、実際の ajax リクエストを javascript または jquery で記述する必要があります。

ruby はサーバー側の言語であるため、ページの更新に使用するデータを取得するには、サーバーに対して ajax 呼び出しを行う必要があります。

この投稿をチェックしてください。彼らはあなたと似たようなことをしているようです。ajax が何かわからない場合は、このリンクを参照してください。

これが多少役立つことを願っています。

于 2013-02-14T22:45:54.233 に答える