我正在使用模态框在索引页面内弹出显示页面......一切正常,直到我开始在我的显示页面部分中使用@product.name。
我收到此错误:
undefined method `name' for nil:NilClass
我知道这是一个简单的修复方法,请帮忙......rails 新手 这是我的代码:
观看次数
_show.html.erb
<div id="myModal" class="modal hide fade" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="content-inner hero-unit">
<h1 class="pump-up center">
<br>
<strong>Coming Soon.</strong></h1>
<br><br>
<p>
<b>Name: </b>
**<%= @product.name %>**
</p>
</div>
</div>
index.html.erb
<%= render :partial => "show", :locals => { :product => @product } %>
<div class="row">
<% @products.each do |product| %>
<div class="span3">
<a href="#myModal" role="button" data-toggle="modal">
<%=(image_tag product.photo(:medium))%></a>
</div>
<% end %>
</div>
型号
产品.rb
class Product < ActiveRecord::Base
attr_accessible :name, :photo
end
Controller
产品 Controller .rb
class ProductsController < ApplicationController
def show
@product = Product.find(params[:id])
end
def index
@products = Product.all
end
end
最佳答案
您正在使用 index
操作渲染 index
模板,因此您范围内的 @product
为 Nil
。您必须在每个产品的循环内调用渲染部分。
index.html.erb
应该是这样的:
<div class="row">
<% @products.each do |product| %>
<div class="span3">
<%= render :partial => "show", :locals => { :product => product } %>
<a href="#myModal" role="button" data-toggle="modal">
<%=(image_tag product.photo(:medium))%></a>
</div>
<% end %>
</div>
关于ruby-on-rails - 通过模态在我的索引页面内呈现显示页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15541713/