我正在尝试创建一个到我的rails应用程序中另一个页面的简单链接,但它似乎没有工作。即使我已经为我的帖子索引页面配置了一个路径,它给了我以下错误:
No route matches {:action=>"posts", :lat=>5, :controller=>"coordinates"}
这是我的目录结构:
我的 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
答案 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
添加到路径文件的顶部。