Ruby on rails Rails帮助循环有一个,属于关联
这是我的kategori控制器显示操作:Ruby on rails Rails帮助循环有一个,属于关联,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,这是我的kategori控制器显示操作: def show @kategori = Kategori.find(params[:id]) @konkurrancer = @kategori.konkurrancer respond_to do |format| format.html # show.html.erb format.xml { render :xml => @kategori } end end 这是kat
def show
@kategori = Kategori.find(params[:id])
@konkurrancer = @kategori.konkurrancer
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @kategori }
end
end
这是kategori视图显示文件:
<% @konkurrancer.each do |vind| %>
<td><%= vind.name %></td>
<td>4 ud af 5</td>
<td><%= number_to_currency(vind.vaerdi, :unit => "DKK", :separator => ".", :delimiter => ".", :format => "%n %u", :precision => 0) %></td>
<td>2 min</td>
<td>Nyhedsbrev</td>
<td><%= vind.udtraekkes.strftime("%d %B") %></td>
</tr>
<% end %>
4 ud af 5
“DKK”、:分隔符=>>”、:分隔符=>>”、:格式=>%n%u”、:精度=>0)%>
2分钟
尼赫茨伯夫
我的kategori模型:
class Kategori < ActiveRecord::Base
has_one :konkurrancer
end
class Kategori
我的Konkurancer型号:
class Konkurrancer < ActiveRecord::Base
belongs_to :kategori
end
类konkurancer未定义“#”的“each”方法:konkurancer问题是您试图在has#one关联上循环。has_one的意思正好是-hasone,所以你不能在这个问题上分别调用,因为只有一个。您可以执行以下操作之一来解决代码中的问题: 使用多个关联:
class Kategori < ActiveRecord::Base
has_many :konkurrancers
end
class Kategori
使用has_one关联并修改视图:
<tr>
<td><%= @konkurrancer.name %></td>
<td>4 ud af 5</td>
<td><%= number_to_currency(@konkurrancer.vaerdi, :unit => "DKK", :separator => ".", :delimiter => ".", :format => "%n %u", :precision => 0) %></td>
<td>2 min</td>
<td>Nyhedsbrev</td>
<td><%= @konkurrancer.udtraekkes.strftime("%d %B") %></td>
</tr>
4 ud af 5
“DKK”、:分隔符=>>”、:分隔符=>>”、:格式=>%n%u”、:精度=>0)%>
2分钟
尼赫茨伯夫
使用哪一种取决于您的数据模型。如果Kategori有许多Konkurancer,那么使用第一个示例。如果Kategori有一个Konkurancer,那么使用第二个示例。两者都是有效的。我用过很多。我会尽快批准你的答案(还有5分钟)