【问题标题】:ERB Form text_area attribute name formatERB 表格 text_area 属性名称格式
【发布时间】:2014-11-12 17:27:56
【问题描述】:

我有一个看起来像这样的表格:

<%= 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 %>

我想使用 rails-bootstrap-markdown gem 将我的常规表单变成一个降价编辑器: https://github.com/belighted/bootstrap-forms/blob/master/README.markdown

bootstrap-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 erb 表单时出现错误:

 <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-provide="markdown" 属性创建的语法错误

有没有办法在嵌入式 ruby​​ 中添加这个 data-provide 属性?

我的天真猜测是它不喜欢 - 部分。

【问题讨论】:

    标签: ruby-on-rails twitter-bootstrap markdown erb


    【解决方案1】:

    你可以这样做:

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

    或者这个:

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

    获取文本区域的"data-provide"="markdown" 属性。但是,它不仅限于文本区域。您可以使用相同的方法为 Ruby on Rails 中的任何元素定义 'data-&lt;name&gt;'='value' 属性。

    提示:如果你想定义两个或更多data-&lt;name&gt; 属性,那么你可以这样做:

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

    这将生成两个data 属性:"data-provide"="markdown""data-extension"="MD"

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多