JSON数据显示没有押韵或原因

时间:2015-01-29 00:45:34

标签: html ruby-on-rails ruby json postgresql

如果这是我没有正确定义设置的问题,我认为其他RoR初学者可能会感兴趣。

我正在构建一个Ruby on Rails 4.0.0应用程序,并且遇到了一个非常烦人的JSON数据显示问题,我无法理解。当我在postgres数据库中显示所有研讨会的列表时,会显示错误。 显示的HTML:

    <h1>Available Workshops</h1>


[#&lt;Workshop id: 1, name: "lolll", workshoptype: "workshop1", location: "3923 west 11th", created_at: "2015-01-27 02:18:00", updated_at: "2015-01-27 02:18:00", cost: nil, starttime: nil, user_id: nil&gt;, #&lt;Workshop id: 2, name: "lolll", workshoptype: "workshop1", location: "3923 west 11th", created_at: "2015-01-27 02:18:28", updated_at: "2015-01-27 02:18:28", cost: nil, starttime: nil, user_id: nil&gt;, #&lt;Workshop id: 3, name: "again", workshoptype: "workshop2", location: "AGAIN", created_at: "2015-01-27 02:19:05", updated_at: "2015-01-27 02:19:05", cost: nil, starttime: nil, user_id: nil&gt;, #&lt;Workshop id: 4, name: "dashit", workshoptype: "workshop3", location: "TROLOL", created_at: "2015-01-27 02:21:03", updated_at: "2015-01-27 02:21:03", cost: nil, starttime: nil, user_id: nil&gt;, #&lt;Workshop id: 5, name: "Tir Workshop", workshoptype: "TIR", location: "White Rock", created_at: "2015-01-27 03:22:26", updated_at: "2015-01-27 03:22:26", cost: 800, starttime: "26/04/1991", user_id: nil&gt;]
    <table class="table table-striped table-hover ">
  <thead>
    <tr>
      <th>#</th>
      <th>Name</th>
      <th>Location</th>
      <th>Type</th>
      <th>Time</th>
      <th>Cost</th>
    </tr>
  </thead>

该表是有意的,其余部分按预期显示。此外,页面的其余部分正确格式化。 这是我的view / workshop / index.html.erb文件:

<h1>Availalbe Workshops</h1>
<table class="table table-striped table-hover ">
  <thead>
    <tr>
      <th>#</th>
      <th>Name</th>
      <th>Location</th>
      <th>Type</th>
      <th>Time</th>
      <th>Cost</th>
    </tr>
  </thead>
  <%= @workshops.each do |workshop|%>
  <tbody>
    <tr>
      <td><%= workshop.id %></td>
      <td><%= link_to workshop.name, workshop_path(workshop.id) %></td>
      <td><%= workshop.location %></td>
      <td><%= workshop.workshoptype %></td>
      <td><%= workshop.created_at %></td>
      <td>$700</td>
    </tr>
  </tbody>
  <% end %>
</table> 

我的非管理工作室控制员:

class WorkshopsController < ApplicationController
  def index
    @workshops = Workshop.all
    # respond_to do |format|
    # format.html { render html: @workshops }
    # end
  end

  def show
    @workshop = Workshop.find(params[:id])  
  end

end

我不确定response_to做了什么,或者我想到的目的可能是因为我可以强迫它做出相应的行为(它没有任何区别)。是否有一些显而易见的东西我像一个postgres /控制器设置一样缺少我不知道是什么导致这个json回声? 我收到了资产错误,但我不确定它是否相关:

Started GET "/workshops" for 127.0.0.1 at 2015-01-28 16:36:57 -0800
Processing by WorkshopsController#index as HTML
  Workshop Load (0.3ms)  SELECT "workshops".* FROM "workshops"
  Rendered workshops/index.html.erb within layouts/application (2.3ms)
  Rendered layouts/_navbar.erb (0.8ms)
Completed 200 OK in 11ms (Views: 10.4ms | ActiveRecord: 0.3ms)


Started GET "/assets/jquery.js?body=1" for 127.0.0.1 at 2015-01-28 16:36:57 -0800


Started GET "/assets/admin/workshops.js?body=1" for 127.0.0.1 at 2015-01-28 16:36:57 -0800


Started GET "/assets/home.js?body=1" for 127.0.0.1 at 2015-01-28 16:36:57 -0800


Started GET "/assets/admin/users.js?body=1" for 127.0.0.1 at 2015-01-28 16:36:57 -0800


Started GET "/assets/jquery_ujs.js?body=1" for 127.0.0.1 at 2015-01-28 16:36:57 -0800


Started GET "/assets/turbolinks.js?body=1" for 127.0.0.1 at 2015-01-28 16:36:57 -0800


Started GET "/assets/users.js?body=1" for 127.0.0.1 at 2015-01-28 16:36:57 -0800


Started GET "/assets/navbar.css?body=1" for 127.0.0.1 at 2015-01-28 16:36:57 -0800


Started GET "/assets/sessions.js?body=1" for 127.0.0.1 at 2015-01-28 16:36:57 -0800


Started GET "/assets/workshops.js?body=1" for 127.0.0.1 at 2015-01-28 16:36:57 -0800


Started GET "/assets/application.js?body=1" for 127.0.0.1 at 2015-01-28 16:36:57 -0800


Started GET "/js/bootstrap.min.js" for 127.0.0.1 at 2015-01-28 16:36:57 -0800
  ActionController::RoutingError (No route matches [GET] "/js/bootstrap.min.js"):
  actionpack (4.0.0) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
  actionpack (4.0.0) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
  railties (4.0.0) lib/rails/rack/logger.rb:38:in `call_app'
  railties (4.0.0) lib/rails/rack/logger.rb:21:in `block in call'
  activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `block in tagged'
  activesupport (4.0.0) lib/active_support/tagged_logging.rb:25:in `tagged'
  activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `tagged'
  railties (4.0.0) lib/rails/rack/logger.rb:21:in `call'
  actionpack (4.0.0) lib/action_dispatch/middleware/request_id.rb:21:in `call'
  rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'
  rack (1.5.2) lib/rack/runtime.rb:17:in `call'
  activesupport (4.0.0) lib/active_support/cache/strategy/local_cache.rb:83:in `call'
  rack (1.5.2) lib/rack/lock.rb:17:in `call'
  actionpack (4.0.0) lib/action_dispatch/middleware/static.rb:64:in `call'
  railties (4.0.0) lib/rails/engine.rb:511:in `call'
  railties (4.0.0) lib/rails/application.rb:97:in `call'
  rack (1.5.2) lib/rack/lock.rb:17:in `call'
  rack (1.5.2) lib/rack/content_length.rb:14:in `call'
  rack (1.5.2) lib/rack/handler/webrick.rb:60:in `service'
  /Users/datis/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/webrick/httpserver.rb:138:in `service'
  /Users/datis/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/webrick/httpserver.rb:94:in `run'
  /Users/datis/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/webrick/server.rb:294:in `block in start_thread'


  Rendered /Users/datis/.rvm/gems/ruby-2.2.0/gems/actionpack-4.0.0/lib/action_dispatch/middleware/templates/rescues/_trace.erb (2.2ms)
  Rendered /Users/datis/.rvm/gems/ruby-2.2.0/gems/actionpack-4.0.0/lib/action_dispatch/middleware/templates/routes/_route.html.erb (3.0ms)
  Rendered /Users/datis/.rvm/gems/ruby-2.2.0/gems/actionpack-4.0.0/lib/action_dispatch/middleware/templates/routes/_table.html.erb (1.1ms)
  Rendered /Users/datis/.rvm/gems/ruby-2.2.0/gems/actionpack-4.0.0/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (66.4ms)

我的日志文件很干净,除了放入postgres之外我还没有触及我的配置。

根据要求,这是我的布局/应用程序:

<!DOCTYPE html>
<html>
<head>
  <title>UnderstandingU</title>
  <%= javascript_include_tag 'application' %>
  <%= csrf_meta_tag %>
  <!-- Latest compiled and minified CSS -->
  <link href="//maxcdn.bootstrapcdn.com/bootswatch/3.3.1/sandstone/bootstrap.min.css" rel="stylesheet">
  <!--   <link href="//maxcdn.bootstrapcdn.com/bootswatch/3.3.1/sandstone/bootstrap.min.css" rel="stylesheet"> -->
  <!-- <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css"> -->
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
  <!-- Latest compiled and minified JavaScript -->
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
</head>
<body>
  <%= render 'layouts/navbar' %>
  <%= yield %>
</body>
</html>

有一些可疑的事情发生了,所以我把它们清理干净了。 js加载错误已停止,但JSON仍在显示。 这是我的布局/导航栏:

<%= stylesheet_link_tag "navbar" %>

<nav class= "navbar navbar-default">
  <div class="container-fluid">

    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
      </button>
      <%= link_to "UnderstandingU", root_path, class: "navbar-brand" %>
<!--       <a class="navbar-brand" href="#">UnderstandingU</a>
 -->    </div>


    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
      <ul class="nav navbar-nav">
        <li><%= link_to "About Mindy", controller: "home", action: "about" %></li>
        <li><%= link_to "Workshops", workshops_path, action: "index" %></li>
         <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Courses <span class="caret"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li class="divider"></li>
            <li><%= link_to "Traumatic Incident Reduction", controller: "home", action: "tir" %></li>
            <li class="divider"></li>
            <li><%= link_to "Life Stress Reduction", controller: "home", action: "lsr" %></li>
            <li class="divider"></li>
            <li><%= link_to "TIR- Extended Applications", controller: "home", action: "ea" %></li>
            <li class="divider"></li>
          </ul>
        </li>
        <li><%= link_to "Contact", controller: "home", action: "contact"%>
        </li>
      </ul>
      <% if current_user %>
        <p class="navbar-text navbar-right"> Signed in as <%= current_user.firstname %> </p>
        <ul class="nav navbar-nav navbar-right">
       <li>
       <%= link_to "Log out", session_path(current_user), method: :delete %>
       </li>

      </ul>
      <% else %>
      <ul class="nav navbar-nav navbar-right">
        <li><%= link_to "Signup/login", new_user_path %></li>
      </ul>
      <% end %>
    </div>
  </div>
</nav>

我知道我使用旧的语法作为家庭控制器,但我遇到一些困难,让action_controller_path表现得如此。

1 个答案:

答案 0 :(得分:0)

<%= @workshops.each do |workshop|%>`

将其更改为

<% @workshops.each do |workshop|%>`

因为<%=将输出each块的结果。这是你认为的。