2016-09-08 7 views
0

コントローラーのアクションでJSレスポンスとして.js.erbテンプレートを使用する代わりにJSそれほど複雑でないなら、コマンドは望みます。例として:コントローラのアクションから部分的にレンダリングする方法(JS ERBなし、ユーザーは単にjs: "command_string"をレンダリングする)

respond_to do |format| 
    # Delete the row from the table containing this user 
    format.js{ render js: "$('#delete_#{user.id.to_i}').closest('tr').remove();" } 
end 

注:コントローラのアクションは、データベース操作を実行するために呼び出される必要があります。

これにより、コントローラーコードを汚すことなく、1行の.js.erbファイルを作成できなくなります。しかし、これを使って部分的にレンダリングしようとすると、私は単に成功していないだけです。例えば、.js.erbファイルで、私はこのようにそれを呼び出します。

$('#emailform').html("<%= raw j(render partial: 'admin/email_form') %>"); 

しかし、私のために動作しないコントローラから、このようなJSコマンドを使用しようとしています。私の推測では、それは文字列の連結の問題です。

私がしたいことは可能ですか?それを最初に欲しいのはいい考えですか?私は完全にあなたの質問を理解していないので、

+0

コントローラでこれを意味しますか?レンダリングテンプレート: "admin/email_form"? – luissimo

答えて

1

これらは、最も関連性の高いあなたはあなたのための最良の選択肢である1自分で決めることができ、レールのコントローラのオプションをレンダリング、およびされています。より多くのレンダリングのために

render :edit 
render action: :edit 
render "edit" 
render "edit.html.erb" 
render action: "edit" 
render action: "edit.html.erb" 
render "books/edit" 
render "books/edit.html.erb" 
render template: "books/edit" 
render template: "books/edit.html.erb" 
render "/path/to/rails/app/views/books/edit" 
render "/path/to/rails/app/views/books/edit.html.erb" 
render file: "/path/to/rails/app/views/books/edit" 
render file: "/path/to/rails/app/views/books/edit.html.erb" 

render json: @product 
render xml: @product 
render html: "<strong>Not Found</strong>".html_safe 
render js: "alert('Hello Rails');" 

あなたがチェックアウトできるオプションthis link

+0

返事をありがとう。しかし、これは私が探しているものではありません。申し訳ありません - 私が望んでいたほど明確ではないと思います。私は時間があれば質問を更新します。 – arunt

関連する問題