Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ruby if语句中使用javascript变量?_Javascript_Ruby On Rails_Ruby_Search - Fatal编程技术网

如何在ruby if语句中使用javascript变量?

如何在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代码在哪里执行,ruby代码在哪里执行。当然不是,ruby是在服务器上执行的,javascript是在客户机上执行的(为了讨论的目的).不相关,但我发现这基本上难以理解。好的:/。那么我如何实现搜索功能呢?我知道我可以有一个搜索表单,但我想使用javascript,因为它要快得多。它们不会在javascript语句中执行。它们会在呈现javascript的服务器上执行,并发送到客户端,它执行JavaScript。在您了解服务器端执行ruby、呈现HTML和JavaScript并将其发送给客户端(客户端显示并执行呈现结果)之前,这一切都将非常困难。您必须使用Ajax或类似技术将数据传递给Rails。JS是客户端,Rails是服务器端;您必须通过某种连接函数发送变量,可以是ajax,也可以是重新加载附加了参数的页面
<%= 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>