私は、次のようにそれをやった私にとっては、JSファイルにERBタグを使用することができます。
#edit.js.erb
$modal = $('.modal'),
$modalBody = $('.modal .modal-body'),
$modalHeading = $('.modal .modal-heading');
$modalHeading.html("Edit <%= @student.full_name.titleize %>'s information");
$modalBody.html("<%= escape_javascript(render 'edit_student') %>");
$modal.modal();
注:ファイルの拡張子は.js.erb
ので、レールがそれを処理することができます。私は、モーダルフォームとstudents_controller.rbで編集する方法を呼んでいたことだった。
def edit
@student = Student.find(params[:id])
respond_to do |format|
format.html # edit.html.erb
format.js # edit.js.erb
format.json { render json: @student }
end
end
編集:
<script>
var loadData = function(){
$.ajax({
type: 'GET',
contentType: 'application/json; charset=utf-8',
url: <%= my_ajax_path %>,
dataType: 'json',
success: function(data){
drawBarPlot(data);
},
failure: function(result){
error();
}
});
};
</script>
:
あなたのようなhtml.erbと利用レールルート内のJSコードを埋め込むことができます
my_ajax_pathとは何ですか?
1-このようなstudents_controllers.rbでメソッドを定義した:
は私は次のようでしたので、学生はAJAXを使用して適用することができ、使用可能なすべてのセクションのリストを必要とする例えばroutes.rb
で定義されたレールのルートです:
def available_sections
batch_id = (params[:batch_id].nil? || params[:batch_id].empty?) ? 0 : params[:batch_id].to_i
if batch_id == 0
@sections = [].insert(0, "Select Section")
else
batch = Batch.find(params[:batch_id])
# map to name and id for use in our options_for_select
@sections = batch.sections.map{|a| [a.section_name, a.id]}
end
end
2- new.html.erb内部routes.rb
resources :students do
collection do
get :available_sections
post :create_multiple
end
end
-3-でそれへのルートを追加しました:
<script type="text/javascript">
$(document).ready(function() {
$('.student_section_id').hide();
$('#student_batch').change(function() {
$.ajax({
url: "/students/available_sections",
data: {
batch_id : $('#student_batch').val()
},
dataType: "script",
success: function() {
if (+$('#student_batch').val() > 0)
{
$('.student_section_id').fadeIn();
}
else
{
$('.student_section_id').fadeOut();
}
}
});
});
});
</script>
その汚いコードを忘れる:それは私の最初のステップだったが、あなたはポイントを取得し、それがレールのルートを使用する必要がありますurl: "/students/available_sections"
この行のためにあなたが得るために、コマンドラインからrails routes
を呼び出すことによってそれを得ることができるようDすべてのアプリケーションルートのリスト
私はmovements.jsファイルを持っています。どのようにしてそのファイルの値を取得できますか?あるいはhtmlファイルにスクリプトタグを置くだけですか? –
my_ajax_pathはどこで定義しますか? –
my_ajax_pathは 'routes.rb'で定義されるべきルートです –