2011-07-14 44 views
0

我正在用Ruby on Rails開發一個網站。如何讓用戶使用rails修改頁面的內容?查詢文本?

我想找到更好的方式讓用戶(而不是開發人員)編輯某些頁面上的文本(如索引...)。 (如CMS?)

實際上,他們必須通過FTP獲取頁面,才能編輯文本並將新文件放到服務器上(通過FTP)。

這是一個非常糟糕的做法,我想知道是否有人有解決這個問題的想法?

非常感謝

回答

0

它會和基本的Rails CRUD操作一樣。只需製作一個代表頁面內容的模型/控制器,以及一個控制器的編輯視圖。然後在你想讓文本可編輯的頁面上,而不是直接在頁面上使用視圖部分。

當然,您可能還需要實施某種類型的身份驗證,以確保不僅每個人都可以編輯頁面。

0

那麼,你可以做的一件事就是在你的數據庫中添加一個名爲「內容」或「複製」的模型,它代表頁面上的一些文本。然後,您可以使用多態關聯將內容/副本鏈接到您的實際模型。例如,如果您有一個包含產品列表的頁面,那麼您的數據庫中可能會有產品模型。你可以做這樣的事情:

class Content < ActiveRecord::Base 
    belongs_to :contentable, :polymorphic => true # excuse my lame naming here 
    # this model would need two fields to make it polymorphic: 
    # contentable_id <-- Integer representing the record that owns it 
    # contentable_type <-- String representing the kind of model (Class) that owns it 
    # An example would look like: 
    # contentable_id: 4 <--- Product ID 4 in your products table 
    # contentable_type: Product <--- Tells the rails app which model owns this record 

    # You'd also want a text field in this model where you store the page text that your 
    # users enter. 
end 

class Product < ActiveRecord::Base 
    has_many :contents, :as => :contentable # again forgive my naming 
end 

在這種情況下,該產品頁面呈現的時候,你可以叫@ product.contents檢索用戶對這款產品輸入的所有文本。如果您不想使用這樣的兩個獨立模型,則可以直接在產品模型本身上放置文本字段,並讓用戶在其中輸入文本。

相關問題