ruby on rails(5)--创建目录列表

首先创建一个控制器 ruby script/generate controller store index 会产生一个store_controller控制器及index方法。同时在view/store/index.html.erb index action是rails默认的action
我们的目的是创建一个目录列表。首先考虑在哪里创建。在mvc结构中。v第一个被排除。那么就是m,c。m与数据库交互,c控制。因此c最合适。书上说这是为了产生抽象方法。

class StoreController < ApplicationController
def index
@products = Product.find_products_for_sale
end
end

Product 类名 find_products_for_sale方法
方法find_products_for_sale 在m中定义。在model/product.rb定义如下

def self.find_products_for_sale
find(:all, :order => "title")
end

self 产生一个类方法 这样Product.find_products_for_sale就可以使用了。find取出表中字段all全部字段,也可自己选择 find(:all,:select => "id,name")这样只取id,name了和SELECT id, name FROM 一样。:order排序


然后就是在view中展示了

<% for product in @products -%> #一个product 代表一条语句
<%= image_tag(product.image_url) %>
<h3><%=h product.title %></h3>
<%= product.description %>
<span calss="price"><%= product.price%>
<% end %>

ps:c层可以调用m层方法,m层方法最好写成类方法。这样调用方便。只需在方法前加self即可。v层可以直接调用c层变量如@products
如果出现 no route match,可重启服务器试试,我重试了,效果还是一样,后来发现controller写错了。 :(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值