Получение драгоценного камня best_in_place для сотрудничества с уценкой Redcarpet - PullRequest
2 голосов
/ 09 декабря 2011

Для моего текста уценки я обычно делаю следующее в текстовом содержимом (@ user.content):

<%= raw Redcarpet.new(@user.content).to_html.html_safe %>

Однако сейчас я использую драгоценный камень best_in_place, как этот

<%= best_in_place(@question, :statement, :path => {:controller => "users", :action => "update"}, :type => :textarea) %>

Как я могу интегрировать Redcarpet с этим? Я пробовал это:

<%= Redcarpet.new(best_in_place(@question, :statement, :path => {:controller => "users", :action => "update"}, :type => :textarea)).to_html.html_safe %>

однако результат не соответствует ожидаемому.Readme best_in_place, кажется, указывает на способ решить эту проблему, но я не понимаю этого здесь , в разделе, озаглавленном «Использование пользовательских методов отображения».Может кто-нибудь объяснить мне, как я могу сделать эту работу?

Ответы [ 2 ]

3 голосов
/ 11 декабря 2011

Я никогда не использовал камень best_in_place, поэтому я не пробовал его. Но из документации вы должны сделать следующие шаги:

  1. Добавьте к вызову best_in_place дополнительный аргумент :display_as.
  2. Реализуйте метод, на который ссылается :display_as, в объект вашей модели.

Вот подробности:

Дополнительный аргумент

%= best_in_place(@question, :statement, :display_as => 'mk_statement', :path => {:controller => "users", :action => "update"}, :type => :textarea) %>

Реализация в модели

class Question

require 'redcarpet'

def mk_statement
   Redcarpet.new(self.statement).to_html.html_safe
end
0 голосов
/ 28 апреля 2015

Вы также можете использовать атрибут display_with и передать ему proc примерно так:

<%= best_in_place(@question, :statement, :display_with => proc { |v| Redcarpet.new(v).to_html.html_safe, :path => {:controller => "users", :action => "update"}, :type => :textarea) %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...