Rails中的超级简单更新应用程序

时间:2014-09-17 14:39:18

标签: ruby-on-rails gem content-management-system crud

我必须使用以下功能制作一个超级简单的Rails应用程序:

只有一个型号:更新。更新只是我的客户将在网站上发布的新闻,即基本上是迷你博客帖子。更新有三个字段:标题,文本(必填)和图像。

客户端需要登录才能创建,更新和&删除更新。不需要角色和授权级别 - 只需一个登录/密码组合即可完成上述任务。

最好在UI中创建一个非常基本的WYSIWYG(用于插入链接等)以创建&编辑更新。

我已经有一段时间做过类似的事了,所以问题是:从头开始滚动所有东西还是我应该考虑的宝石是否明智?

(我可能会使用AWS和CarrierWave作为图像)。

非常感谢!

2 个答案:

答案 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

enter image description here

Devise的底线是你需要3件事才能让它发挥作用:

  
      
  1. User型号
  2.   
  3. 一个users
  4.   
  5. 设计专栏&amp;系统安装
  6.   

如果没有过度负担,我只建议使用我上面提到的控制器(带有相应的视图),路线,然后设计