Javascript 将JS变量传递给Rails中的控制器

Javascript 将JS变量传递给Rails中的控制器,javascript,ruby-on-rails,controller,routes,Javascript,Ruby On Rails,Controller,Routes,我发现: …我一直在尝试做同样的事情,即 窗口。打开(“http://localhost:3000//controller/index?location=“+位置,”\u self“ 我的控制器: class FindMeController < ApplicationController def index location = params[:location] @snake = Snake.where(location: location) if @sna

我发现:

…我一直在尝试做同样的事情,即

窗口。打开(“http://localhost:3000//controller/index?location=“+位置,”\u self“

我的控制器:

class FindMeController < ApplicationController
  def index
    location = params[:location]
    @snake = Snake.where(location: location)
    if @snake.save
        redirect_to root_url
    else
        redirect_to root_url
  end
end
class SnakesController < ApplicationController
  def index
    location = params[:location]
    @snake = Snake.where(location: location)
    if @snake.save
        redirect_to root_url
    else
        redirect_to root_url
  end
end

我不明白。为什么它会转到我的控制器而不是我的snakes#索引视图?

将此“+位置”,“U self”更改为“+位置+”,_self“

在控制台上尝试rake路由,找出FindEconroller索引操作的路由并替换该路由,即


window.open(“+”/“+”您的变量”)

我刚刚犯了一个synax错误,它停止了任何操作。原来的问题仍然存在。你能粘贴实际的url吗?我假设是这样的:“,\u selfit this”“您可以尝试将您的路线重命名为其他路线吗?像在config/routes.rb中这样:获取'myfind'=>'find#me#index',然后尝试以myfind#h的身份访问该操作!作为一个观察事项,您控制器中的上述代码缺少一个“end”语句!!!if-else没有匹配的“end”!你的编辑都是这样的:FindEconcontroller和SnakesController:)啊,我注意到了。我之所以尝试这样做,是因为我想使用JS,因为我认为它会更容易,但似乎有一些宝石使地理定位更容易,所以我将研究它们,这种方法似乎更尴尬-谢谢你的帮助。你需要在routes.rb文件中添加资源。根据rails命名约定,您的控制器名称应为SnakesController,并且在routes.rb文件中,您需要添加资源:snakes,然后您将获得snakes\u path作为索引操作的路径,因此我应该删除我的find\u me控制器并创建一个新的SnakesController?获得索引操作的路由??rake routes给出了:findEconcontroller\u index GET/findEconcontroller/index(:format)find\u me\u controller\index,但我不确定你的意思。这不只是FindEconcontroller/index吗?因为我把它放在了routes中,rbI在我的routes.rb中添加了“resources:snakes”,但我认为这对我没有帮助,因为我的控制器叫FindDME?