Heroku上的Rails:仅在Chrome上没有路由错误

时间:2016-05-30 14:46:45

标签: ruby-on-rails heroku

我正在使用Rails here为Tinder构建一个克隆。该应用可以在本地运行,没有任何错误。我正在使用Rails 4.2.6
当我在Heroku上部署应用程序时,应用程序的功能/不喜欢该功能,但仅适用于Chrome。在日志文件中,它表示没有路由 我尝试使用Safari,它可以毫无问题地运行。
我已清除缓存
我看了一下Heroku logs file,我发现Chrome的方法是GET,而在Safari上它是POST。

这是日志(我删除了时间戳)
在chrome:

at=info method=GET path="/users/4/like_user" host=tinderusth.herokuapp.com request_id=25ad4d9f-f37c-4386-8192-0ba81e7431af fwd="42.112.242.134" dyno=web.1 connect=1ms service=41ms status=404 bytes=1829
Started GET "/users/4/like_user" for 42.112.242.134 at 2016-05-30 14:11:32 +0000
ActionController::RoutingError (No route matches [GET] "/users/4/like_user")

在Safari上:

at=info method=POST path="/users/9/like_user" host=tinderusth.herokuapp.com request_id=9b6951a4-9fc1-4d18-b43e-e0594bf82e6a fwd="42.112.242.134" dyno=web.1 connect=2ms service=68ms status=302 bytes=1026
User Load (2.1ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1  ORDER BY "users"."id" ASC LIMIT 1  [["id", 2]]
Parameters: {"authenticity_token"=>"Wz+R/8pl+/R7vlwex6fL1PWgVUQmdqHj3FwCjtu75GQMk7sQ6Q4gwbfUAILQElAFJA8DtmPSf3jh9LrQpTMYYQ==", "id"=>"9"}
app[web.1]: Started POST "/users/9/like_user" for 42.112.242.134 at 2016-05-30 14:12:04 +0000
app[web.1]:   User Load (4.5ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 9]]

我的路线.rb :(我用的是设计宝石)

devise_for :users
 resources :posts
 resources :users do
  member do
   post :like_user, :superlike_user
  end
 end
 resources :profiles
 resources :matches do
  member do
   delete :unlike_user
  end
 end
root 'users#index'

两者都呈现相同的视图:

<a class="users-button like-button" id="like_user_1" rel="nofollow" data-method="post" href="/users/1/like_user">
  <span title="Like this user" class="fa fa-thumbs-up hvr-bounce-in" aria-hidden="true">
  </span>
</a>

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

看起来Chrome无法解释您的data-method: :post

Chrome:Started GET

Safari:Started POST

尝试使用button_to执行此操作,以便绕过这些限制。 (http://apidock.com/rails/ActionView/Helpers/UrlHelper/button_to