2014-11-12 3 views
0

У меня есть форма для этого выглядит следующим образом:ERB Форма text_area атрибут формат имени

<%= form_for(:post, :url => {:action => 'create'}) do |f| %> 
<%= f.text_field(:title, class: 'form-control')%> 
<%= f.text_field(:description, class: 'form-control')%> 
<%= f.text_area(:content, rows: 15)%> 
<div class="actions "> 
<%= f.submit "Submit", class: 'btn col-md-4 col-md-offset-4 btn-large btn-success' %> 
<% end %> 

Я хотел бы превратить свою правильную форму в редакторе уценки с помощью реек-самозагрузки-уценки перл: https://github.com/belighted/bootstrap-forms/blob/master/README.markdown

документации бутстраповской-уценка находится здесь: http://toopay.github.io/bootstrap-markdown/

Он говорит, что для преобразования обычной текстовой области в редакторе уценки мне нужно, чтобы добавить data-provide="markdown" атрибут

Я добавил этот кусок кода в шаблон:

<form> 
    <input name="title" type="text" placeholder="Title?" /> 
    <textarea name="content" data-provide="markdown" rows="10"></textarea> 
    <label class="checkbox"> 
     <input name="publish" type="checkbox"> Publish 
    </label> 
    <hr/> 
    <button type="submit" class="btn">Submit</button> 
</form> 

Он работал нормально, но когда я пытаюсь добавить data-provide="markdown" в моей form_for форме Еврорадио Я получаю сообщение об ошибке:

<div class="well col-md-10 col-md-offset-1" 
<%= form_for(:post, :url => {:action => 'create'}) do |f| %> 
    <%= f.text_field(:title, class: 'form-control')%> 
    <%= f.text_field(:description, class: 'form-control')%> 
    <%= f.text_area(:content, rows: 15, data-provide: "markdown")%> 
    <div class="actions "> 
    <%= f.submit "Submit", class: 'btn col-md-4 col-md-offset-4 btn-large btn-success' %> 
    </div> 
<% end %> 
</div> 

В нем говорится, что есть синтаксическая ошибка, которая создается атрибутом data-supply = "markdown"

Есть ли способ добавить этот атрибут предоставления данных в embe грязный рубин?

Мое наивное предположение, что ему не нравится часть -.

ответ

3

Вы можете сделать это:

<%= f.text_area(:content, rows: 15, "data-provide" => "markdown")%> 

или это:

<%= f.text_area(:content, rows: 15, data: {provide: "markdown"})%> 

получить "data-provide"="markdown" атрибут для текстовой области. Но это не ограничивается только текстовой областью. Вы можете использовать тот же подход, чтобы определить атрибут 'data-<name>'='value' для любого элемента Ruby on Rails.

Совет: Если вы хотите, чтобы определить два или более data-<name> атрибутов, то вы можете сделать что-то вроде этого:

<%= f.text_area(:content, rows: 15, data: {provide: "markdown", extension: 'MD'})%> 

, который будет генерировать два data атрибуты: "data-provide"="markdown" и "data-extension"="MD".

+1

Это сработало отлично. Извините за отправку простого вопроса, но я не знал, где искать эту информацию в документации. В документе ruby-on-rails api docs не упоминается об этом в разделе text_area http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-text_area –

+0

несколько минут работы с поисковыми системами: https://stackoverflow.com/questions/4258512/best-way-to-use-html5-data-attributes-with-rails-content-tag-helper и http://api.rubyonrails.org/classes/ActionView/ Помощники/TagHelper.html # метод-я-тег – Surya