Phi*_*kie 2 ruby ruby-on-rails
使用rails 3.1,ruby 1.92.我在商店里有很多产品:电影,音乐和书籍.我的产品控制器中有三个示波器,都称为相同(电影,音乐和书籍).我们的任务是让产品控制器的索引显示网站负载的所有项目.没问题.然后,我们必须链接到书籍,音乐或电影,并显示相应的产品.也完成了.
但是,我现在在视图中有三个文件,我需要部分显示所有这些文件.我用过这个:
<% @products.each do |product| %>
<div class="entry">
<%= image_tag(product.image_url) %>
<h3><%= product.title %></h3>
<%= sanitize(product.description) %>
<div class="price_line">
<span class="price"><%= number_to_currency(product.price) %></span>
<%= button_to 'Add to Cart', line_items_path(:product_id => product) %>
</div>
</div>
<% end %>
Run Code Online (Sandbox Code Playgroud)
我真的不明白发生了什么.我已经采用了最初的'@product'并且使用了我的示波器,它现在是@book,或@music等.在我的代码中有三个文件,我有这个代码,但不是'@products '和'做|产品|',我有@books做|书| 等等
我需要做什么才能使用@books,@ Music和@movies来实现部分功能?每次我传递这些变量,我都会得到NilClass错误.我该怎么做?
查看关于布局和渲染的rails指南 - 特别是关于partials的部分,我将其直接链接到.
基本上,您希望重构代码以避免使用@ product,@ books,@ movie等,并使用局部变量进行部分调整.
在您的产品视图中:
<%= render :partial => "whatever_you_name_it", :locals => {:products => @products} %>
Run Code Online (Sandbox Code Playgroud)
在您的图书视图中:
<%= render :partial => "whatever_you_name_it", :locals => {:products => @books} %>
Run Code Online (Sandbox Code Playgroud)
在电影视图中:
<%= render :partial => "whatever_you_name_it", :locals => {:products => @movies} %>
Run Code Online (Sandbox Code Playgroud)
在局部内部,只需改变你@products.each do |product|的products.each do |product|
| 归档时间: |
|
| 查看次数: |
1646 次 |
| 最近记录: |