【问题标题】:Admin-editable views管理员可编辑的视图
【发布时间】:2014-05-16 23:13:31
【问题描述】:

似乎没有这方面的宝石,我认为 CMS 有点矫枉过正,因为客户只想在主页上编辑欢迎消息!

这是我认为我应该做的:

1) 创建页面模型:

rails g model Page name:string

2) 创建字段模型:

rails g model Field name:string content:string page_id:integer

3) 创建关系,Page h1:b2 Field

4)创建rake任务设置属于欢迎页面的消息字段:

namespace :seeder do
    namespace :initial_seed do
        task pages: :environment do
            p = Page.create(name: "Welcome")
            p.fields.create(name: "welcomemessage", content: "everything goes here. The long rambling welcome!")
        end
    end
end

5) 为“静态”页面创建一个“静态”控制器。家,关于我们等...

class Static < ApplicationController
    def home
        @fields = Page.where().fields
    end
end

6) 在视图中,从数据库中填充欢迎消息(我将为此创建一个助手):

<% field = @fields.find {|x| x[:name] == 'welcomemessage' } %>
<%= field.content %> 

这样就完成了阅读。现在开始创建、更新和删除:

6) 创建控制面板控制器:

class Panel < ApplicationController
    def pages
        @pages = Page.all
    end
end

7) 在panel/pages.html.erb 的视图中显示字段:(我将在此处使用部分)

<% @pages.each do |page| %>
    Title: <%= page.name %>
    <% page.fields.each do |field|%>
        Field: <%= field.name %>

        <% form_for(field) do |f| %>
            <% f.text_area :content%>
            <% f.submit %>
        <%= end %>
    <% end %>
<% end %>

现在这只是我想做的事情的粗略介绍。不过,我想查询一些问题。

  1. 你会这样做吗?
  2. 我应该如何配置我的路由?用我们正在查看的页面的字段填充 @fields 变量(参见步骤 5)的巧妙方法是什么?
  3. 如果我有一个panel/pages.html.erb 视图,它是否应该简单地显示文本区域中的所有可编辑字段?它应该如何更新这些区域?多个表单内的多个提交按钮?如果有人想一次编辑多个字段并一次全部提交怎么办?
  4. 这些表格应该放在哪里?我应该像这样在 Panel 控制器内创建多个 RESTful 操作吗?:

class Panel < ApplicationController
    # new and create not present as the pages have to be created manually
    # Enabling the user to create their own pages with their own layouts is a bit insane
    def pages
        @pages = Page.all
    end
    def pages_update
    end
    def pages_destroy
    end
end

一个控制器中的多个安静的路由并没有让我觉得有条理,但如果不是管理员,它会更容易使用 before_action 挂钩来锁定面板控制器以重定向...


另外,我的一项大工作即将结束,我需要做的就是添加在一个页面上编辑一个字段的功能,我已经完成了,我真的不想去想出 alchemy_cms 或其他什么。将来,是的,但是,拜托,拜托,请有人在这里给我一些小指点。

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    我强烈建议您不要构建自己的 CMS。它充满了困难,而且你现在似乎正在与其中的一些人竞争。你应该去看看AlchemyCMS之类的东西。

    【讨论】:

    • 我相信你是对的,如果我用图像和项目符号以及其他所有内容创建一些东西,我会研究 Alchemy(顺便说一句)。但是,它实际上是一页上的一个可编辑文本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    • 1970-01-01
    • 1970-01-01
    • 2014-01-12
    • 1970-01-01
    • 2019-01-14
    相关资源
    最近更新 更多