2023-09-11 11:28AM
POST: create 创建资源(仅用于新建)
PUT/PATCH: update 更新资源 (仅用于修改: PUT完全更新资源,PATCH 部分更新资源)
GET: index, show, new, edit 检查资源(仅用于查询:只读取数据,不修改数据,不会对数据库的现有数据产生影响)
DELETE: destroy 删除资源(仅用于删除)
在config/routes.rb中
resources :fruits
一个 resources,就定义了new, show, index, create, edit, update, destory 7种路由
可以通过使用命令 $ bundle exec rake routes 来查看详细路由
fruits GET /fruits(.:format) fruits#index
POST /fruits(.:format) fruits#create
new_fruit GET /fruits/new(.:format) fruits#new
edit_fruit GET /fruits/:id/edit(.:format) fruits#edit
fruit GET /fruits/:id(.:format) fruits#show
PATCH /fruits/:id(.:format) fruits#update
PUT /fruits/:id(.:format) fruits#update
DELETE /fruits/:id(.:format) fruits#destroy
指定路由
# 这里会生成第八种路由: GET: /fruits/list,使用GET方法可以访问 /fruits/list
resources :fruits do
collection do
get :list
end
end
下面代码的作用是定义rails默认的action之外的action
collection do
get :list
end
eg: list不存在默认的七种路由中,所以要重新定义
GET /fruits/list 使用GET方法来达到 /fruits/list 的url上
对应: list_fruits_path的action就是 list action
下面的四种写法,都会产生相同的<a>内容
<a href = '/fruits/new'>跳转到新建页面</a> 这个是最传统的html写法
<a href= '<%= new_fruit_path %>'>跳转到新建页面</a>
<%= link_to '跳转到新建页面', '/fruits/new' %>
<%= link_to '跳转到新建页面', new_fruit_path %>
它们生成的HTML内容都是一样的:(浏览器页面F12的内容)
<%= edit_fruit_url({:id => fruit_id}) %>
这个方法可以引申成:(ruby方法最外层圆括号可以省略,方法的最后一个参数如果是hash的话 {} 也可以省略)
<%= edit_fruit_url :id => fruit_id %>
继续省略
<%= edit_fruit_url fruit_id %> #这个是rails的推荐写法
eg: fruit_id = 1
1. "/fruit/" + fruit_id + "/edit/"
2. "/fruits/#{fruit_id}/edit"
3. edit_fruit_path fruit_id #这个是rails的推荐写法
第三种形式是可读性最好的
要想生成某个url:
/fruits/list?a=1&b=2
就可以写成:
list_fruits_path(:a=>1, :b=>2)
登录
请登录后再发表评论。
评论列表:
目前还没有人发表评论