我正在使用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>
感谢您的帮助。
答案 0 :(得分:1)
看起来Chrome无法解释您的data-method: :post
。
Chrome:Started GET
Safari:Started POST
尝试使用button_to
执行此操作,以便绕过这些限制。 (http://apidock.com/rails/ActionView/Helpers/UrlHelper/button_to)