私のコントローラーからユーザーにモーダルウィンドウ(jquery UIダイアログを使用)を表示しようとしています。例えばコントローラーからモーダルを起動する
:あなたの助けを
def create
if params[:id]
#do something
else
#show a modal window with a partial as content
end
Thxを=)
私のコントローラーからユーザーにモーダルウィンドウ(jquery UIダイアログを使用)を表示しようとしています。例えばコントローラーからモーダルを起動する
:あなたの助けを
def create
if params[:id]
#do something
else
#show a modal window with a partial as content
end
Thxを=)
これは修正ですが、おそらく新しいであなた
コントローラ
def create
if params[:id]
#true code
else
render :new
@dialog = true
end
end
のために動作します.html.erb
<% if @dialog %>
<%= #dialog code %>
<% else %>
<%= #normal code %>
<% end %>
希望します。
UPDATE
私はコメントであなたを尋ねたことは正しいなら、あなたはあなたのnew.html.erb
あなたはjQueryのを表示することはできません。この
<% form_for @product do |f| %>
<% if @product.errors %>
<%= #dialog code %>
<% end %>
<% end %>
こんにちは、答えのためのthx。私はすでにこの解決策を考え出しましたが、より洗練されたアプローチを探したかったのです。 – Flyingbeaver
を行うことができ、この
を行うことができますサーバーサイドでJavaScriptを実行することができないため、コントローラからのダイアログこれに最も近いのは、クライアント側で評価されるJavaScript文字列を返すことですが、これは非常に悪い習慣です。あなたの最善の策は、サーバー側で何かキーを押して、クライアント側でダイアログコードを実行することです。あなたのerbテンプレートにたくさんのJavaScriptが必要ない場合は、そこから関数を呼び出すことができます。または、AJAXを介して送信し、ハンドラにダイアログを表示させるか、または両方をレンダリングできるjs.erbテンプレートをレンダリングさせることができます部分的なこととJavaScriptを行う。上記のいずれかの例が必要な場合はお知らせください。私が提供できるかどうかがわかります。
まあ、私はこれを行うための最もクリーンな方法を見て興味があり、またDRYest方法:)時間のためのTHX – Flyingbeaver
あなたの送信アクションまたはJavaScriptのメソッドを呼び出す方法 – shingara
私は送信を使用します。 – Flyingbeaver
このようにしたいですか?もし@valid_attributesが次に保存してリダイレクトすると、新しいレンダリングを表示し、モーダルフォームを表示しますか? – Rohit