Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails将_链接到实例变量的记录。count()结果_Ruby On Rails_Controller_Render_Link To - Fatal编程技术网

Ruby on rails Rails将_链接到实例变量的记录。count()结果

Ruby on rails Rails将_链接到实例变量的记录。count()结果,ruby-on-rails,controller,render,link-to,Ruby On Rails,Controller,Render,Link To,我的提交者模型中的记录显示在应用程序索引视图中,如下表所示。只有我希望能够单击为.count()列出的号码,并进入我的票证索引视图,列出所有相应的记录(票证) 我很难理解如何将实例变量链接到控制器的操作,以便使用视图的布局 有什么想法吗 <table> <tr> <th>Name</th> <th>Number of Tickets</th> </th> <tr>

我的提交者模型中的记录显示在应用程序索引视图中,如下表所示。只有我希望能够单击为
.count()
列出的号码,并进入我的票证索引视图,列出所有相应的记录(票证)

我很难理解如何将实例变量链接到控制器的操作,以便使用视图的布局

有什么想法吗

<table>
  <tr>
    <th>Name</th>
    <th>Number of Tickets</th>
  </th>
  <tr>
    <% Submitter.where(:school_id => current_user.school_id, :disabled => false).each do |sub| %>
    <td><%= link_to sub.full_name, edit_submitter_path(sub) %></td>
    <td><%= Ticket.where(:submitter_id => sub).count %></td>
  </tr>
    <% end %>
</table>

也许是这样的?不是100%理解你的问题

<table>
  <tr>
    <th>Name</th>
    <th>Number of Tickets</th>
  </th>
  <tr>
    <% Submitter.where(:school_id => current_user.school_id, :disabled => false).each do |sub| %>
      <td><%= link_to sub.full_name, edit_submitter_path(sub) %></td>
      <td><%= link_to pluralize(sub.tickets.count, 'ticket'), tickets_path %></td>
    <% end %>
  </tr>
</table>

名称
票数
当前_user.school_id,:disabled=>false)。每个do | sub |%>

一、 当然,除非我知道你的
config/routes.rb
是什么样子,否则我无法给你完美的工作代码,因为我不知道你的票证索引视图的方法是什么。如果是这样,您将显示一个提交者列表(在submitters_controller#index方法中)并计算票证数量。然后将该编号链接到tickets#controller#index方法。像这样

routes.rb

resources :submitters do
  resources :tickets
end
提交者\u控制器.rb

class SubmittersController < ApplicationController

  def index
    @submitters = Submitter.where(:school_id => current_user.school_id, :disabled => false)
  end

end
class TicketsController < ApplicationController

  def index
    @submitter = Submitter.find(params[:submitter_id])
    @tickets = @submitter.tickets
  end

end

对不起,我不清楚。不知道该怎么说。这是一个正确的方向。但是,当我单击这些时,它会加载localhost:3000/tickets.*在这里插入随机数,这显然只是一个空白页。我的config/routes.rb是标准配置。为了进一步解释,如果count()返回4。我想点击数字4,然后看到那4条记录。我不知道你的
config/routes是什么意思。rb
是标准的,因为我不知道里面应该有什么。
ticket\u path
是否需要传递给订阅者?您可以通过发布您的路线让我们的生活更轻松:)我意识到本地主机:3000/tickets.*在此处插入\u random\u number\u*实际上是提交者Id,而不是随机数。谢谢,但我正在我的应用程序索引中显示提交者和票证号的列表,然后将它们链接到票证索引。我觉得这会改变你所拥有的一切。这是一个微小的改变,但值得。如果您正在显示提交者列表,则应将其放入Submiters\u控制器中。这就是索引的作用。它是宁静的,值得遵循这种模式。Rails鼓励您这样做,如果您遵循Rails惯例,您会发现您的项目将发展得更加顺利。您应该能够从应用程序控制器剪切和粘贴索引方法,然后链接到/submiters url。感谢您的解释。我的推理更多的是因为设计方面,而不是功能方面。但是,为了测试,我像您一样设置了它,它似乎可以工作并加载/submitter/{submitter_id}/tickets URL,但只显示我的常规索引页面。我猜是因为我以前已经有一张票了<代码>@tickets=paginate.where(:school\u id=>@current\u user.school\u id).顺序(sort\u column+“”+sort\u direction).搜索(params[:search])如何使用不同的操作或实例变量获取它?啊-是的,在这种情况下,您希望对/tickets和/submitter/:submitter\u id/tickets使用相同的操作,您必须查找submitter_id参数并有条件地实例化@tickets。一个简单的if参数[:submitter_id]就可以了。如果票证记录上有提交者的id,则可以将其添加到where子句中。
class TicketsController < ApplicationController

  def index
    @submitter = Submitter.find(params[:submitter_id])
    @tickets = @submitter.tickets
  end

end
<table>
  <tr>
    <th>Name</th>
    <th>Number of Tickets</th>
  </th>
  <% @submitters.each do |sub| %>
    <tr>
      <td><%= link_to sub.full_name, edit_submitter_path(sub) %></td>
      <td><%= link_to pluralize(sub.tickets.count, 'ticket'), submitter_tickets_path(sub) %></td>
    </tr>
  <% end %>
</table>
# This would show a list of tickets and their attributes - possibly linking to a ticket.