【发布时间】:2015-09-09 08:40:02
【问题描述】:
我有两个模型:
class Team < ActiveRecord::Base
belongs_to :scoreboard
end
和
class Scoreboard < ActiveRecord::Base
has_many :teams
end
在记分牌的show页面上,我渲染了以下内容:
<div class="all-teams">
<%= render @scoreboard.teams %>
</div>
它链接到团队目录中的一个部分,它执行以下操作:
<%= div_for team, :class => "team-list" do %>
<div class= "boxin1"><%= team.name %></div>
<div class= "boxin2"><%= team.win %></div>
<div class= "boxin2"><%= team.loss %></div>
<div class= "boxin2"><%= team.tie %></div>
<span class= "boxin3 btn btn-primary"><%= link_to "Edit", edit_scoreboard_team_path(@scoreboard, team.id) %> </span>
<span class= "boxin3 btn btn-primary">Del</span>
<%end%>
在我提出问题之前,我还将显示相关操作的控制器数据:
记分牌控制器中的显示动作:
def show
@scoreboard = Scoreboard.find_by(params[:id])
@team = @scoreboard.teams.build
end
重要提示 这个 scoreboard#show 视图页面上已经存在一个表单,它创建一个新的团队对象并调用团队控制器中的 team#new 方法和 team#create 方法。这就是 scoreboard#show 方法中有一个 @team 变量的原因。
团队控制器中的编辑操作
def edit
@scoreboard = Scoreboard.find(params[:scoreboard_id])
@team = @scoreboard.teams.find(params[:id])
end
现在这是我的问题。每次为每个团队生成一个 div 时,都会在该 div 旁边生成一个编辑按钮,该按钮将带您进入包含用于编辑该特定团队的表单的编辑视图。编辑链接中的 @scoreboard 拉出 :scoreboard_id 很好,但似乎我们无法按顺序拉出每个团队的 :id使编辑链接起作用。每次,我们尝试访问 scoreboard#show 的视图,都会收到以下错误:
没有路线匹配 {:action=>"edit", :controller=>"teams", :id=>nil, :scoreboard_id=>"7"} 缺少必需的键:[:id]强>
我们如何为 div_for 中的每个团队提取 :id?
【问题讨论】:
-
team变量从何而来?这是部分的完整代码吗?
标签: ruby-on-rails nested