Как разрешить пользователю модифицировать содержимое страниц с помощью рельсов? Запрос текста? - PullRequest
0 голосов
/ 14 июля 2011

Я разрабатываю сайт с Ruby on Rails.

Я хочу найти лучший способ разрешить пользователям (не разработчикам) редактировать текст на некоторых страницах (например, указатель ...). (как CMS?)

На самом деле им приходилось получать страницу через FTP, редактировать текст и помещать новый файл на сервер (через FTP).

Это очень и очень плохая практика, и я хотел узнать, есть ли у кого-нибудь идея решить эту проблему?

Большое спасибо

Ответы [ 2 ]

0 голосов
/ 14 июля 2011

Ну, одну вещь, которую вы могли бы сделать, это добавить модель в вашу базу данных под названием «Содержимое» или «Копировать», которая представляет некоторый текст на странице. Затем вы можете использовать полиморфную ассоциацию, чтобы связать контент / копию с вашей реальной моделью. Например, если у вас есть страница со списком продуктов, скорее всего, в вашей базе данных есть модель продукта. Вы могли бы сделать что-то вроде этого:

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, чтобы получить весь текст, введенный пользователями для этого продукта. Если вы не хотите использовать две отдельные модели, подобные этой, вы можете поместить текстовое поле непосредственно в саму модель Продукта и попросить пользователей ввести текст там.

0 голосов
/ 14 июля 2011

Это будет то же самое, что и базовые операции Rails CRUD. Просто создайте модель / контроллер, представляющий содержимое страницы, и представление редактирования для контроллера. Затем на страницах, которые вы хотите, чтобы текст был редактируемым, вместо того, чтобы размещать контент непосредственно на странице, просто используйте частичное представление.

Конечно, вы, вероятно, также захотите внедрить некоторый тип аутентификации, чтобы убедиться, что не все могут редактировать страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...