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.