我有一个Ruby on Rails(2.2.2)应用程序,用户可以上传图像并将其标记为“已锁定”。这将把它们放在另一个文件夹中,而不是你没有标记它。普通上传文件夹是/ uploads / Image,锁定文件夹是/ uploads / vip / Image。我想只锁定VIP文件夹,这样你就无法将链接发送给某人并在不登录的情况下查看它。我猜逻辑必须重定向到应用程序,而不是盲目地提供图像。问题是怎么样的?
在rails中创建模型不是一种选择,因为这些图像是由fckeditor上传的,只是在没有进一步逻辑的情况下编写和链接。
答案 0 :(得分:0)
如果您使用devise,请使用之前的过滤器,例如before_filter :authenticate_user!
。如果用户未登录,这将重定向到登录页面。图像通过控制器操作提供。
答案 1 :(得分:0)
你可能不得不重新思考你的应用程序是如何设计的,因为没有任何方法(就这个n00b可以看到的)锁定某些路径而没有某个地方的图像模型。有一个 Rails fckeditor (链接)gem,它允许您在应用程序中将fckeditor与Rails模型和控制器完全集成。
这是我要做的。
user_id:integer
和 protected:boolean, :default => false
字段。这样可以更轻松地直接链接到某些图像而不是其他图像,并跟踪谁上传图像。请务必在图片模型中设置 belongs_to :user
关系。before_filter :current_user
方法登录访问权。map.resources :images
语句,这有助于为每张上传的照片创建完整的网址。这应该足以让你走上正确的道路。如果你正确地实现了这一点,你应该能够让用户在fckeditor中上传照片,选择他们是受保护的还是没有“VIP”,这应该将照片保存到你指定的文件夹,并且只允许直接链接到非VIP照片以及其他要求用户登录/创建和帐户。祝你好运!
〜丹