Acts_as_votable 路由问题
Acts_as_votable routing problems
我一直在使用 acts_as_votable gem,它适用于图片、评论和活动等内容。但我希望能够为其他用户点赞.
阅读文档我可以通过向模型添加 acts_as_votable 和 acts_as_voter 来做到这一点。
问题是我不知道如何调整我的路线以考虑到这一点,因为它的配置与其他路线略有不同。
在开发中,个人资料页面显示在 localhost:3000/@user.profile_name
路线是get '/:id', to: 'profiles#show', as: 'profile'.
使用 acts_as_votable 路线通常如下所示:
resources :comments do
member do
put "like", to: "comments#upvote"
put "dislike", to: "commentss#downvote"
end
end
但是我该如何调整我现有的路线以类似的方式工作?
如果我使用
resources :profiles, only: :show, as: 'profile' do
put 'like', on: :member
put 'dislike', on: :member
end
这将作为 localhost:3000/profiles/@user.profile_name/like.
这不适用于以下内容:
def like
@user = User.find_by_profile_name(params[:id])
@user.liked_by current_user
redirect_to profile_path(@user)
end
def dislike
@user = User.find_by_profile_name(params[:id])
@user.unliked_by current_user
redirect_to profile_path(@user)
end
或者我喜欢/不喜欢的按钮。
<%= link_to dislike_profile_path(@user), method: :put, class: "btn btn-success btn-xs" do %>
<i class="fa fa-heart-o"></i> Remove Hype
<% end %>
<%= link_to like_profile_path(@user), method: :put, class: "btn btn-success btn-xs" do %>
<i class="fa fa-heart"></i> Hype
<% end %>
resources :profiles, only: :show, path: '/' do
member { put :like, :dislike }
end
并且您的链接应该可以正常工作
注意:通过在浏览器中输入路径,它将通过 get 而不是 put 完成,因此它不会工作,但我假设你知道这一点:-)
我一直在使用 acts_as_votable gem,它适用于图片、评论和活动等内容。但我希望能够为其他用户点赞.
阅读文档我可以通过向模型添加 acts_as_votable 和 acts_as_voter 来做到这一点。
问题是我不知道如何调整我的路线以考虑到这一点,因为它的配置与其他路线略有不同。
在开发中,个人资料页面显示在 localhost:3000/@user.profile_name
路线是get '/:id', to: 'profiles#show', as: 'profile'.
使用 acts_as_votable 路线通常如下所示:
resources :comments do
member do
put "like", to: "comments#upvote"
put "dislike", to: "commentss#downvote"
end
end
但是我该如何调整我现有的路线以类似的方式工作?
如果我使用
resources :profiles, only: :show, as: 'profile' do
put 'like', on: :member
put 'dislike', on: :member
end
这将作为 localhost:3000/profiles/@user.profile_name/like.
这不适用于以下内容:
def like
@user = User.find_by_profile_name(params[:id])
@user.liked_by current_user
redirect_to profile_path(@user)
end
def dislike
@user = User.find_by_profile_name(params[:id])
@user.unliked_by current_user
redirect_to profile_path(@user)
end
或者我喜欢/不喜欢的按钮。
<%= link_to dislike_profile_path(@user), method: :put, class: "btn btn-success btn-xs" do %>
<i class="fa fa-heart-o"></i> Remove Hype
<% end %>
<%= link_to like_profile_path(@user), method: :put, class: "btn btn-success btn-xs" do %>
<i class="fa fa-heart"></i> Hype
<% end %>
resources :profiles, only: :show, path: '/' do
member { put :like, :dislike }
end
并且您的链接应该可以正常工作
注意:通过在浏览器中输入路径,它将通过 get 而不是 put 完成,因此它不会工作,但我假设你知道这一点:-)