我必须使用以下功能制作一个超级简单的Rails应用程序:
只有一个型号:更新。更新只是我的客户将在网站上发布的新闻,即基本上是迷你博客帖子。更新有三个字段:标题,文本(必填)和图像。
客户端需要登录才能创建,更新和&删除更新。不需要角色和授权级别 - 只需一个登录/密码组合即可完成上述任务。
最好在UI中创建一个非常基本的WYSIWYG(用于插入链接等)以创建&编辑更新。
我已经有一段时间做过类似的事了,所以问题是:从头开始滚动所有东西还是我应该考虑的宝石是否明智?
(我可能会使用AWS和CarrierWave作为图像)。
非常感谢!
答案 0 :(得分:1)
它不是宝石,但您可以查看Rails Composer:https://github.com/RailsApps/rails-composer - 它们具有用于生成满足您需求的应用程序的模板。它允许您设置选项以帮助您进一步自定义它们。
答案 1 :(得分:1)
实现这一目标的最简单方法(是的,它会相对简单)将Devise
gem与InheritedResources
一起使用。方法如下:
<强>流量强>
首先,您需要确保您能够使用一个地方来撰写和创作。提交更新。为此,您需要创建一个simple backend (admin) system,为您提供一个单独的空间来更新您的后端:
#config/routes.rb
namespace :admin do
resources :updates, path: "", except: :show #-> domain.com/admin/
end
root: "updates#index"
resources :updates, path: "", only: [:show, :index] #-> domain.com/:id
这种系统的重要性是相关的。
我认为您提到的问题是您无法从“受保护”区域创建或访问各种迷你更新的方式。使用我详细说明的方法只会提供这个区域,但也能让你正确存储数据。
-
<强>控制器强>
要实现这一点,您需要两个控制器:
#app/controllers/updates_controller.rb #-> for general users
class UpdatesController < InheritedResources::Base
#InheritedResources will create relevant CRUD resources
end
#app/controllers/admin/updates_controller.rb #-> for admin
class Admin::UpdatesController < InheritedResources::Base
before_action :authenticate_user! #-> for Devise
#InheritedResources creates relevant responses
end
以上两个控制器实际上是您需要的核心。它们为您应用的admin
和“常规”区域提供CRUD功能 - 使您能够为用户提供根据需要上传的功能。
您需要考虑的最重要的事情是身份验证。这是用Devise处理的(我将在下面解释)。您需要考虑的是authenticate_user!
调用 - 这是决定用户是否能够调用方法的因素,具体取决于他们是否已登录(维护活动会话)
-
设计(身份验证)
Devise
gem将是您对应用程序的身份验证进行排序所需的内容。这就是你所要求的 - 简单来说,这是Devise的工作。
有一个great tutorial on how to handle this here:
Devise的底线是你需要3件事才能让它发挥作用:
User
型号- 一个
users
表- 设计专栏&amp;系统安装
醇>
如果没有过度负担,我只建议使用我上面提到的控制器(带有相应的视图),路线,然后设计