我有coffeeshops
的资源,我允许用户同时使用favorite
和bookmark
个咖啡店。
我在coffeeshop控制器上也有http_basic_authenticate_with
,以防止除我之外的任何人写入我的数据库。
我的当前设置似乎不允许用户实际favorite
或bookmark
,除非他们已登录。
我该如何解决这个问题?我也在使用Devise进行用户管理,我是否可以利用它来限制对数据库的写访问权限,允许我删除http_basic_authenticate_with
?
coffeeshop_controller.rb
class CoffeeshopsController < ApplicationController
http_basic_authenticate_with name: "*******, password: "*******", except: [:index, :show]
我尝试将此更新为[:index, :show, :put]
,但这没有任何区别。
答案 0 :(得分:0)
在except
中你应该列出控制器动作而不是http方法,如下所示:
class CoffeeshopsController < ApplicationController
http_basic_authenticate_with name: "*******", password: "*******", except: [:index, :favorite, :bookmark]
def index
# list of coffeeshops without authentication
end
def new
# requires authentication
end
def create
# requires authentication
end
def favorite
# endpoint to mark coffeeshop as favourite without authentication
end
def bookmark
# endpoint to bookmark a coffeeshop without authentication
end
...
end