Помещение гиперссылки в текстовое поле «Опубликовать» в Rails 3 - PullRequest
1 голос
/ 19 ноября 2010

Rails Новичок здесь задает свой первый вопрос ....

Я создаю личный веб-сайт в стиле блога, который использует универсальную платформу "Post" для добавления контента на сайт.Поля: title: string , body: text и : tag_list соответственно. Acts-as-taggable сортирует сообщения и помещает их на правильную страницу.

Когда я создаю новое сообщение и вводю текст в : тело , я могуне распознавать ничего, кроме чистого текста.Я пытаюсь заставить его принимать встроенные html-теги, методы rails (т.е. link_to , image_tag ) в самом тексте.Набирая это, я понимаю, что я ищу основные функциональные возможности большинства текстовых редакторов блогов.Есть ли простой способ сделать это?

Вот мои посты модель :

class Post < ActiveRecord::Base
  has_many :tags
  acts_as_taggable_on :tags
  attr_accessible :tag_list, :tags, :title, :body, :post, :comments
  validates :title, :presence => true, :length   => { :maximum => 30 }
  validates :body, :presence => true
  default_scope :order => 'posts.created_at DESC'
  named_scope :by_join_date, :order => "created_at DESC"

Вот мои посты helper :

module PostsHelper
    include ActsAsTaggableOn::TagsHelper
    include TagsHelper

Контроллер сообщений и Просмотр сообщений все в основном не изменились из кода скаффолда.

Заранее благодарим за всю вашу помощь!

~ Дан

1 Ответ

4 голосов
/ 19 ноября 2010

(отредактировано для Rails 3 согласно комментарию ниже)

Если я понимаю вопрос, вы хотите, чтобы пользователь мог вводить HTML в своем посте.

Прежде всего, если вы вводите HTML-теги вручную, но они отображаются в виде обычного текста (например, image instead of the actual image) you have to go into your view and add "raw" before the post body.

<%= @post.body %>

should be

<%= raw @post.body %>

Rails 3 by default protects you against users that try to insert HTML into unwanted parts of your site. For example without it if I leave a comment on your post, I could insert some malicious tags. But if you're the only one making posts, that's obviously not an issue, so it's safe to display the "raw" html content.

As for the HTML itself, you could conceivably make your text field interpret rails code (like the link_to or image_tag helpers) but that's bat country, unless you're really, really sure what you're doing I wouldn't go there. (And even if you do know I wouldn't recommend it.)

You can look into a simpler markup language like RedCloth , очень прост в реализации, но также несколько ограничены, или вы можете сделать полный WYSIWYG, например, CKEditor или WYMEditor

StackOverflow использует WMD-редактор , комбинацию простого механизма разметки и текстового поля WYSIWYG.

Я обычно работаю с CKE, потому что у него очень полный набор функций, и его легко использовать людям, привыкшим к MSWord-подобным редакторам.

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