[英]Rails 3: when no current_user(no user logged in) friendly_id sends username as :id but controller method does not work
我使用的是friendly_id gem,当我以登录用户身份进入用户的个人资料页面时,它可以正常工作:
localhost/users/facebookname
当我注销并转到个人资料页面时,它以相同的方式显示网址,没问题。 但是,当我尝试显示用户的“喜欢”帖子时,我遇到了问题。 什么都没发生。
Started GET "/users/facebookname/likes" for 127.0.0.1 at 2015-01-08 14:47:23 +0700
Processing by UsersController#likes as JS
Parameters: {"id"=>"facebookname"}
Completed in 152ms
UsersController#喜欢
def likes
@title = "Likes"
@user = User.find(params[:id])
respond_to do |format|
format.html { render "posts/posts", :locals => { :posts => @likes } }
format.js { respond_with @likes}
end
end
UsersModel
has_friendly_id :username, :use_slug => true, :approximate_ascii => true
当我以用户身份登录并尝试相同的操作时, Parameters: {"id"=>"facebookname"}
的使用方式相同,但是控制器操作将其与适当的:id一起使用并呈现@likes。 为什么没有登录用户就不会发生这种情况?
非常感谢您的见解
您应该在控制器中按username
找到用户:
@user = User.find_by_username!(params[:id])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.