没有路线匹配(铁路)

时间:2014-03-24 00:20:30

标签: ruby-on-rails ruby-on-rails-3

我正在尝试创建一个到我的rails应用程序中另一个页面的简单链接,但它似乎没有工作。即使我已经为我的帖子索引页面配置了一个路径,它给了我以下错误:

No route matches {:action=>"posts", :lat=>5, :controller=>"coordinates"}

这是我的目录结构:

enter image description here

我的 routes.rb 文件

HighwayPolice::Application.routes.draw do

resources:posts
resources:coords
resources:coordinates
get 'posts', to: 'posts#index'  
end

../应用/视图/坐标/ index.html.erb

 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
    <script type="text/javascript"
      src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCThq7kV6r4-cILKpujZek5e-uZGbGdjkU&sensor=false">
    </script>
    <script type = "text/javascript">
     function initialize()
     {console.log("click");
    var mapOptions = {
    center: new google.maps.LatLng(-34.397, 150.644),
    zoom: 8
    };
    var map = new google.maps.Map(document.getElementById("map-canvas"),
    mapOptions);


google.maps.event.addListener(map, 'click', function(event) {
console.log(event.latLng.k);
});
var test = 3;
$('#Test').val(test);
console.log(test);
var lat = 3
        var lon = 34
        var parsed_data = {location: {lat: lat, lon: lon}}

}

</script>


<h1>Coordinates#index</h1>
<body onload = "initialize()">
<div id="map-canvas" style = "width:500px; height:500px"></div>
<p>Find me in app/views/coordinates/index.html.erb</p>
<% @coordinates.each do |coordinate| %>
<p><%= coordinate.longitude %></p>
<p><%= coordinate.lattitude %></p>
<hr />
<% end %> 
<%= link_to('Save',{:action => 'post', :lat => 5}) %>

posts_controller.rb

 class PostsController < ApplicationController
    def index

    end
   end

2 个答案:

答案 0 :(得分:1)

您当前的链接正在尝试发布到坐标控制器帖子操作。

如果您想按路线控制器中的指定发布到帖子控制器,请尝试

link_to "Save", controller: :posts, action: :index, lat: 5

答案 1 :(得分:0)

如果您尝试在坐标控制器上发布帖子请求,请使用method: :post代替:action => 'post'

如果您尝试将数据发布到坐标控制器中名为“post”的操作,那么您应该在路由文件的顶部添加匹配项,因为resources: coordinates只会添加CRUD操作(请参阅本节中的第2.5节)在坐标控制器上链接[http://guides.rubyonrails.org/routing.html]以获取完整的方法列表。所以你应该将match 'coordinates/post' to 'coordinates#post', via: :post添加到路径文件的顶部。