2013-05-27 76 views
0

我不明白在routes.rb中Rails为什么路由错误?没有路由匹配误差与另一个控制器

我在promotions_controller.rb我有加写

match 'promotions/search' => 'promotions#search',:as =>:search_promo ,:via=>:get 

def search 
    @promotions = Promotion.all 
    respond_to do |format| 
    format.html # search.html.erb 
    format.json { render json: @promotion } 
    end 
    end 

,并有创造视图促销文件search.erb.html

 <!DOCTYPE html> 
    <html> 
    <head> 

     <script type=text/javascript> 
     var geocoder; 
     var map; 


    function initialize() { 
     geocoder = new google.maps.Geocoder(); 
     var latlng = new google.maps.LatLng(-34.397, 150.644); 
     var mapOptions = { 
      zoom: 9, 
      center: latlng, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     } 
     map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); 
     codeAddress(); 
    } 

    function loadScript() { 
     var script = document.createElement("script"); 
     script.type = "text/javascript"; 
     script.src = "https://maps.googleapis.com/maps/api/js?key=AIzaSyAlDKLvBpApFUJJVjSXbZ-BV40B3xBVtYY&sensor=false&language=it&callback=initialize"; 
     document.body.appendChild(script); 
    } 

    window.onload = loadScript; 

    function codeAddress() { 
     var address = "<%= @promotion.Address %>"; 
     geocoder.geocode({ 'address': address}, function(results, status) { 
      if (status == google.maps.GeocoderStatus.OK) { 
       map.setCenter(results[0].geometry.location); 
       var marker = new google.maps.Marker({ 
        map: map, 
        position: results[0].geometry.location 
       }); 
      } else { 
       alert('Geocode was not successful for the following reason: ' + status); 
      } 
     }); 
    } 

    google.maps.event.addDomListener(window, 'load', initialize); 

     </script> 
     </head> 

    <body onload="codeAddress()"> 
     <div data-role="header" id="ale" data-theme="a"> 
     <h1> View all details </h1> 
     <%= link_to 'Home', promotions_url,'data-icon' =>'home','class'=>'ui-btn-  left','data-transition'=>'fade','data-mini'=> 'true' %> 
    </div> 

    <div data-role="content" data-theme="b"> 
     <p id="notice"><%= notice %></p> 


     <%= link_to 'Back', promotions_path,'data-role'=>'button','data-inline'=>'true'  %> 

      <div class="field"> 
    <strong><%=p.label :Show_in_google_maps%></strong> 
     <div id="map-canvas" style="width: 100%; height:400px"/> 
     </div> 


    </div> 


    </body> 
    </html> 

并在另一页写

<li><%= link_to "Search Promo",search_promo_path,'data-icon'=>'search','data-theme'=>'a','data-mini'=>'true',"data-ajax"=>"false"%></li> 

有什么不对?

我得到这个错误

的ActiveRecord :: RecordNotFound在PromotionsController#显示 可能找不到ID为促进=搜索

为什么告诉我显示控制器我想要的搜索控制器!帮助

回答

1

您没有发布完整的路线文件,但我认为ressources :promotions在您的搜索匹配器之前?切换它们,它应该工作。

相关问题