Div不适用于新版本的Rails

时间:2016-08-07 03:07:24

标签: ruby-on-rails

我的代码如下

<%= div_for(comment) do %>
<div class="comments_wrapper clearfix">
    <div class="pull-left">
        <p class="lead"><%= comment.body %></p>
        <p><small>Submitted <strong><%= time_ago_in_words(comment.created_at) %> ago</strong> by <%= comment.user.name %></small></p>
    </div>

我使用的是Rails v5.0,Ruby 2.3.1版本。 当我使用“rails s”命令运行应用程序时。

它会抛出以下错误。

  

错误:RecordTagHelper

可能是什么原因?

2 个答案:

答案 0 :(得分:3)

最后我找到了答案 我们都知道rails5最近已经发布。

旧版本的rails&lt; 5.0中的操作视图中的代码已被删除..

所以我们需要添加一个名为'record_tag_helper'的宝石

在我的情况下 我的观看代码如下所示

<%= div_for(comment) do %>
<div class="comments_wrapper clearfix">
    <div class="pull-left">
        <p class="lead"><%= comment.body %></p>
        <p><small>Submitted <strong><%= time_ago_in_words(comment.created_at) %> ago</strong> by <%= comment.user.name %></small></p>
    </div>

当我在新版本的rails中运行应用程序时,它无法正常工作

为什么它不起作用?

RecordTagHelper由以前属于其中的代码组成 “的ActionView”。
但已从Rails 5中的核心中删除。

解决方案

我们需要添加gem'record_tag_helper','〜&gt; 1.0'到我们的gem文件并运行bundle install。

提供此gem以确保使用其功能的项目 ::的ActionView ::助手RecordTagHelper 有适当的升级路径。

答案 1 :(得分:0)

来自Apidock,

  

div_for(record,* args,&amp; block)public

     

生成一个包装器DIV元素,其id和class参数与指定的Active Record对象相关。

第一个参数必须是ActiveRecord对象。在您的代码中,您将Item传递给div_for。它应该是item,这是有效的AR对象。你没有发布整个块。无论如何,试试这个。

<%= div_for(item) do %>
  <div class="itemss_wrapper clearfix">
    <div class="pull-left">
      <p class="lead">
        <%= item.body %>
      </p>
    </div>
  </div>
<% end %>