そのため、Railsアプリで、自分のページの1つにあるエラーメッセージを修正しました。プロセスは(誰もが理解できるように)最初でした。私の「編集」では、最後link_to
に追加:remote => true
して、ajaxリクエストを送信させました。format.js
次に、respond_to do |format|
ブロックに行を追加しました。次に、次のコード行を使用してedit.js.erbファイルを作成しました。このファイルは、$('#error').html("<%= flash[:error] %>");
基本的に現在のページのエラーdivを検出し、そのdivのhtmlをエラーフラッシュメッセージに置き換えます。これはかっこいいですよね?エラーが発生した場合に、煩わしいページが更新されることはもうありません。
質問は、すべての編集ページと破棄ページに対してこれを実行したいのですが、ビューフォルダーごとにedit.js.erbファイルとdestroy.js.erbファイルを作成せずにどうすればよいでしょうか。とてもシンプルに見えます、そして多分私は疲れ果てているので明白な答えを逃しているだけです、しかし私はそれを理解することができません...だから...助けて?????
編集!
これは私の編集コントローラーです
def edit
user = User.find(session[:id])
@table = Table.find(params[:id])
if user.id != @table.created_by
flash[:error] = "ERROR"
respond_to do |format|
format.js {render :template => 'shared/show_error'}
format.html
end
else
flash[:error] = ""
respond_to do |format|
format.js {render :template => 'table/edit', :formats => :html}
format.html
end
end
end
問題は、エラーの表示には問題なく機能しますが、エラーがない場合は編集ページをレンダリングしません...サーバーウィンドウでは表示されますが、実際には画面に表示されません...何かアイデアはありますか?