【问题标题】:Rails Displaying Full Database Instead of of Attributes Only [duplicate]Rails显示完整数据库而不是仅显示属性[重复]
【发布时间】:2014-04-19 07:17:27
【问题描述】:

我似乎已经在我的 Rails 应用程序中完成了一些工作,以确保正在创建游戏和门票,但是当我尝试在 html.erb 文件中显示它们时,整个数据库正在被渲染......所有我要显示的是实际的门票属性。这是它的外观以及与之相关的代码。任何帮助表示赞赏。

代码是:

 <h1> game id is <%= @g.id %> </h1>

 <h2> Ticket values are: </h2>

 <table>
     <%= @g.tickets.each do |tick| %>

     <tr>
         <td><%= tick.id %></td>
         <% if tick.nickname.blank? %>
         <td> Available</td>
         <% else %>
         <td><%= tick.nickname %></td>
         <% end %>
         <td><%= tick.game_id %></td>
     </tr>
     <% end %>
 </table>

我需要删除在票据值下打印的完整数据库部分,但似乎无法在不删除所有内容的情况下将其删除。感谢您的帮助。

门票控制器是:

  class TicketsController < ApplicationController

    def create
      @ticket = Ticket.new
      @ticket.nickname = params["nickname"]
      @ticket.game_id = params["game_id"]
      @ticket.save
    end

  end

游戏控制器是:

 class GamesController < ApplicationController

 def create
    @g = Game.new
    @g.winning_ticket_num = params["winning_ticket_num"]
    @g.value_per_ticket = params["value_per_ticket"]
    @g.save
    10.times do 
      @g.tickets.create
    end
    render 'games/show'
 end 


 def new
 end

 def show 
 end


 end

【问题讨论】:

  • 向我们展示您的Tickets controller
  • 票务控制器已在原帖中更新。
  • @g 值有什么作用。你在控制器的什么地方?
  • 游戏被创建,10张门票被初始化并与游戏相关联,即门票belongs_to Game和游戏has_many门票。 @g 是与门票相关联的实际游戏。我也会更新 Games 控制器

标签: html ruby-on-rails embedded-ruby


【解决方案1】:

中删除=
<%= @g.tickets.each do |tick| %>

应该是这样的

<% @g.tickets.each do |tick| %>

【讨论】:

【解决方案2】:

问题出在这一行

&lt;%= @g.tickets.each do |tick| %&gt;.它输出与游戏相关的所有门票。

去掉=,代码应该是这样的

<table>
     <%@g.tickets.each do |tick| %>

     <tr>
         <td><%= tick.id %></td>
         <% if tick.nickname.blank? %>
         <td> Available</td>
         <% else %>
         <td><%= tick.nickname %></td>
         <% end %>
         <td><%= tick.game_id %></td>
     </tr>
     <% end %>
 </table>

在使用这些 Rails 表达式时要小心。 &lt;% %&gt; 执行输出。而&lt;%= %&gt; 打印输出。

【讨论】:

  • 感谢 Pavan 的帮助...我已经选择了其他答案。
  • @user1572597 我刚刚编辑了一些附加信息的答案。