如何在ruby if语句中使用javascript变量?
我正在尝试实现(想想这个:javascript代码在哪里执行,ruby代码在哪里执行。当然不是,ruby是在服务器上执行的,javascript是在客户机上执行的(为了讨论的目的).不相关,但我发现这基本上难以理解。好的:/。那么我如何实现搜索功能呢?我知道我可以有一个搜索表单,但我想使用javascript,因为它要快得多。它们不会在javascript语句中执行。它们会在呈现javascript的服务器上执行,并发送到客户端,它执行JavaScript。在您了解服务器端执行ruby、呈现HTML和JavaScript并将其发送给客户端(客户端显示并执行呈现结果)之前,这一切都将非常困难。您必须使用Ajax或类似技术将数据传递给Rails。JS是客户端,Rails是服务器端;您必须通过某种连接函数发送变量,可以是ajax,也可以是重新加载附加了参数的页面如何在ruby if语句中使用javascript变量?,javascript,ruby-on-rails,ruby,search,Javascript,Ruby On Rails,Ruby,Search,我正在尝试实现(想想这个:javascript代码在哪里执行,ruby代码在哪里执行。当然不是,ruby是在服务器上执行的,javascript是在客户机上执行的(为了讨论的目的).不相关,但我发现这基本上难以理解。好的:/。那么我如何实现搜索功能呢?我知道我可以有一个搜索表单,但我想使用javascript,因为它要快得多。它们不会在javascript语句中执行。它们会在呈现javascript的服务器上执行,并发送到客户端,它执行JavaScript。在您了解服务器端执行ruby、呈现HT
<%= javascript_tag do %>
$(document).ready(function(){
$(".sort_button").click(function(){
$("#tbody1").html('');
<% @national_university_enrollment.each do |school| %>
if ( $(this).attr('id') == 'size_all' ) {
$('<tr><td class="name_column"><%= link_to "#{school.name}", "#{school.url}" %></td><td class="rank_column"><%= "#{school.us_news_ranking}" %></td><td class="location_column"><%= "#{school.location}" %></td><td class="setting_column"><%= "#{school.setting}" %></td><td class="size_column"><%= number_with_delimiter("#{school.enrollment}", :delimiter => ',') %></td><td class="cost_column">$<%= number_with_delimiter("#{school.in_state_tuition + school.room_and_board}", :delimiter => ',') %>/ $<%= number_with_delimiter("#{school.out_of_state_tuition + school.room_and_board}", :delimiter => ',') %></td><td class="math_column"><%= "#{school.sat_math_25} - #{school.sat_math_75}" %></td><td><%= "#{school.sat_reading_25} - #{school.sat_reading_75}" %></td><td><%= "#{school.act_composite_25} - #{school.act_composite_75}" %></td></tr>').appendTo("#tbody1");
}
else if ( $(this).attr('id') == 'intimate' ) {
<% if school.enrollment < 3000 %>
$('<tr><td class="name_column"><%= link_to "#{school.name}", "#{school.url}" %></td><td class="rank_column"><%= "#{school.us_news_ranking}" %></td><td class="location_column"><%= "#{school.location}" %></td><td class="setting_column"><%= "#{school.setting}" %></td><td class="size_column"><%= number_with_delimiter("#{school.enrollment}", :delimiter => ',') %></td><td class="cost_column">$<%= number_with_delimiter("#{school.in_state_tuition + school.room_and_board}", :delimiter => ',') %>/ $<%= number_with_delimiter("#{school.out_of_state_tuition + school.room_and_board}", :delimiter => ',') %></td><td class="math_column"><%= "#{school.sat_math_25} - #{school.sat_math_75}" %></td><td><%= "#{school.sat_reading_25} - #{school.sat_reading_75}" %></td><td><%= "#{school.act_composite_25} - #{school.act_composite_75}" %></td></tr>').appendTo("#tbody1");
<% end %>
}
else if ( $(this).attr('id') == 'small' ) {
<% if school.enrollment >= 3000 && school.enrollment < 7000 %>
$('<tr><td class="name_column"><%= link_to "#{school.name}", "#{school.url}" %></td><td class="rank_column"><%= "#{school.us_news_ranking}" %></td><td class="location_column"><%= "#{school.location}" %></td><td class="setting_column"><%= "#{school.setting}" %></td><td class="size_column"><%= number_with_delimiter("#{school.enrollment}", :delimiter => ',') %></td><td class="cost_column">$<%= number_with_delimiter("#{school.in_state_tuition + school.room_and_board}", :delimiter => ',') %>/ $<%= number_with_delimiter("#{school.out_of_state_tuition + school.room_and_board}", :delimiter => ',') %></td><td class="math_column"><%= "#{school.sat_math_25} - #{school.sat_math_75}" %></td><td><%= "#{school.sat_reading_25} - #{school.sat_reading_75}" %></td><td><%= "#{school.act_composite_25} - #{school.act_composite_75}" %></td></tr>').appendTo("#tbody1");
<% end %>
}
else if ( $(this).attr('id') == 'medium' ) {
<% if school.enrollment >= 7000 && school.enrollment < 15000 %>
$('<tr><td class="name_column"><%= link_to "#{school.name}", "#{school.url}" %></td><td class="rank_column"><%= "#{school.us_news_ranking}" %></td><td class="location_column"><%= "#{school.location}" %></td><td class="setting_column"><%= "#{school.setting}" %></td><td class="size_column"><%= number_with_delimiter("#{school.enrollment}", :delimiter => ',') %></td><td class="cost_column">$<%= number_with_delimiter("#{school.in_state_tuition + school.room_and_board}", :delimiter => ',') %>/ $<%= number_with_delimiter("#{school.out_of_state_tuition + school.room_and_board}", :delimiter => ',') %></td><td class="math_column"><%= "#{school.sat_math_25} - #{school.sat_math_75}" %></td><td><%= "#{school.sat_reading_25} - #{school.sat_reading_75}" %></td><td><%= "#{school.act_composite_25} - #{school.act_composite_75}" %></td></tr>').appendTo("#tbody1");
<% end %>
}
else if ( $(this).attr('id') == 'large' ) {
<% if school.enrollment >= 15000 && school.enrollment < 25000 %>
$('<tr><td class="name_column"><%= link_to "#{school.name}", "#{school.url}" %></td><td class="rank_column"><%= "#{school.us_news_ranking}" %></td><td class="location_column"><%= "#{school.location}" %></td><td class="setting_column"><%= "#{school.setting}" %></td><td class="size_column"><%= number_with_delimiter("#{school.enrollment}", :delimiter => ',') %></td><td class="cost_column">$<%= number_with_delimiter("#{school.in_state_tuition + school.room_and_board}", :delimiter => ',') %>/ $<%= number_with_delimiter("#{school.out_of_state_tuition + school.room_and_board}", :delimiter => ',') %></td><td class="math_column"><%= "#{school.sat_math_25} - #{school.sat_math_75}" %></td><td><%= "#{school.sat_reading_25} - #{school.sat_reading_75}" %></td><td><%= "#{school.act_composite_25} - #{school.act_composite_75}" %></td></tr>').appendTo("#tbody1");
<% end %>
}
else if ( $(this).attr('id') == 'huge' ) {
<% if school.enrollment >= 25000 %>
$('<tr><td class="name_column"><%= link_to "#{school.name}", "#{school.url}" %></td><td class="rank_column"><%= "#{school.us_news_ranking}" %></td><td class="location_column"><%= "#{school.location}" %></td><td class="setting_column"><%= "#{school.setting}" %></td><td class="size_column"><%= number_with_delimiter("#{school.enrollment}", :delimiter => ',') %></td><td class="cost_column">$<%= number_with_delimiter("#{school.in_state_tuition + school.room_and_board}", :delimiter => ',') %>/ $<%= number_with_delimiter("#{school.out_of_state_tuition + school.room_and_board}", :delimiter => ',') %></td><td class="math_column"><%= "#{school.sat_math_25} - #{school.sat_math_75}" %></td><td><%= "#{school.sat_reading_25} - #{school.sat_reading_75}" %></td><td><%= "#{school.act_composite_25} - #{school.act_composite_75}" %></td></tr>').appendTo("#tbody1");
<% end %>
}
<% end %>
});
});
<% end %>
<tbody id="tbody1">
<%= javascript_tag do %>
$(document).ready(function(){
$(".sort_button").click(function(){
alert('clicked');
$("#tbody1").html('');
<% @national_university_enrollment.each do |school| %>
if ( $(this).attr('id') == 'size_all' ) {
<% min_size = 0 %>
<% max_size = 1000000 %>
}
else if ( $(this).attr('id') == 'intimate' ) {
<% min_size = 0 %>
<% max_size = 2999 %>
}
else if ( $(this).attr('id') == 'small' ) {
<% min_size = 3000 %>
<% max_size = 6999 %>
}
else if ( $(this).attr('id') == 'medium' ) {
<% min_size = 7000 %>
<% max_size = 14999 %>
}
else if ( $(this).attr('id') == 'large' ) {
<% min_size = 15000 %>
<% max_size = 24999 %>
}
else if ( $(this).attr('id') == 'huge' ) {
<% min_size = 25000 %>
<% max_size = 1000000 %>
}
<% if school.enrollment >= min_size && school.enrollment < max_size %>
$('<tr><td class="name_column"><%= link_to "#{school.name}", "#{school.url}" %></td><td class="rank_column"><%= "#{school.us_news_ranking}" %></td><td class="location_column"><%= "#{school.location}" %></td><td class="setting_column"><%= "#{school.setting}" %></td><td class="size_column"><%= number_with_delimiter("#{school.enrollment}", :delimiter => ',') %></td><td class="cost_column">$<%= number_with_delimiter("#{school.in_state_tuition + school.room_and_board}", :delimiter => ',') %>/ $<%= number_with_delimiter("#{school.out_of_state_tuition + school.room_and_board}", :delimiter => ',') %></td><td class="math_column"><%= "#{school.sat_math_25} - #{school.sat_math_75}" %></td><td><%= "#{school.sat_reading_25} - #{school.sat_reading_75}" %></td><td><%= "#{school.act_composite_25} - #{school.act_composite_75}" %></td></tr>').appendTo("#tbody1");
<% end %>
<% end %>
});
});
<% end %>
</tbody>