RoR - Restful Actions
Index:
用于检索所有条目
# index.json.jbuilder json.array!(@post) do |post|
json.extract! post, :id, :title, :content
json.url post_url(post, format: :json)
end #/posts.json
Show&Destory:
1.根据id检索相应的条目
2.跳转到show.html.erb 提供相应
#example localhost:3000/posts/1 #show.json.jbuilder json.extract! @post, :id, :title, :content, :created_at, :updated_at localhost:3000/posts/2.json
respond_to: 特定怎么去相应一个request

redirect_to:

# DELETE /posts/1
# DELETE /posts/1.json def destory
@post.destory
respond_to do |format|
format.html {redirect_ to posts_url, notice: 'Post deleted' }
format.json {head :no_content }
end
end
New&Create:
# GET /posts/new def new
@post = Post.new
end # Look for new.html.erb
Create Action 没有模板,它会试着将object存进数据库,如果成功的话重定向到show 模板
如果没有成功render new action
Flash:
# flash flash[:attribute] = value # :notice (good) :alert (bad)
edit:
# GET /posts/1/edit before_action :set_post, only: [:show, :edit, :update, :destory] def edit end private
def set_post
@psot = Post.find(params[:id])
end
end
update:
用id检索到需要update的object
用edit form里面的parameters去更新object
保存更新的数据到数据库
(默认)成功的话,重定向到show 模板
不成功,到edit
before_action :set_post, only: [:show, :edit, :update, :destory] # PATCH/PUT /posts/1
# PATCH/PUT /posts/1.json def update
respond_to do |format|
if @post.update(post_params)
format.html {redirect_to @post, notice: 'Post was updated.' }
format.json { render :show, status: :ok, location: @post }
else
format.html { render :edit }
format.json { render json: @post.errors, status: :unprocessable_entity}
end
end
end private
def set_post
@psot = Post.find(params[:id])
end def post_params
params.require(:post).permit(:title, :content)
end
end
Partials:
# partial start with _ <%= render @posts %> is equivalent to <% @posts.each do |post| %>
<%= render post %>
<% end %>
Form Helpers and Layouts:
<%= form_for(@post) do |f| %>
<% if @post.errors.any? %>
<% end %> <div class="field">
<%= f.label :title %> <br>
<%= t.text_field :title %>
</div> <div class="field">
<%= f.label :content %> <br>
<%= f.text_area :content %>
</div> <div class= "actions">
<%= f.submit %>
</div>
<% end %>
如果想在controller里用model里的method,
首先defind self.method 在model里
接着用model.method 在controller里面
RoR - Restful Actions的更多相关文章
- Laravel Controllers
Basic Controllers Instead of defining all of your route-level logic in a single routes.php file, you ...
- AngularJS Resource:与 RESTful API 交互
REST(表征性状态传输,Representational State Transfer)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格.RESTful风格的设计不仅 ...
- Yii2 基于RESTful架构的 advanced版API接口开发 配置、实现、测试 (转)
环境配置: 开启服务器伪静态 本处以apache为例,查看apache的conf目录下httpd.conf,找到下面的代码 LoadModule rewrite_module modules/mod_ ...
- 从英文变形规则计算到Restful Api设计
➠更多技术干货请戳:听云博客 一天在研究Restful API设计,命名的时候我总是很纠结,我相信大多数人也有这种感觉,不是说想不出来某个单词怎么写的问题,像我这种没事背单词背到13000词量的人也要 ...
- 【转】最佳Restful API 实践
原文转自:https://bourgeois.me/rest/ REST APIs are a very common topic nowaday; they are part of almost e ...
- 好RESTful API的设计原则
说在前面,这篇文章是无意中发现的,因为感觉写的很好,所以翻译了一下.由于英文水平有限,难免有出错的地方,请看官理解一下.翻译和校正文章花了我大约2周的业余时间,如有人愿意转载请注明出处,谢谢^_^ P ...
- 【转】 Build a RESTful Web service using Jersey and Apache Tomcat 2009
Build a RESTful Web service using Jersey and Apache Tomcat Yi Ming Huang with Dong Fei Wu, Qing GuoP ...
- 使用 Swagger UI 与 Swashbuckle 创建 RESTful Web API 帮助文件
作者:Sreekanth Mothukuru 2016年2月18日 本文旨在介绍如何使用常用的 Swagger 和 Swashbuckle 框架创建描述 Restful API 的交互界面,并为 AP ...
- Principles of good RESTful API Design 好的 RESTful API 设计
UPDATE: This post has been expanded upon and converted into an eBook. Good API design is hard! An AP ...
随机推荐
- 【easy】118.119.杨辉三角
这题必会啊!!! 第一题118. class Solution { public: vector<vector<int>> generate(int numRows) { ve ...
- centos7环境下apache2.2.34的编译安装
.获取apache2..34的源码包 http://archive.apache.org/dist/httpd/httpd-2.2.34.tar.gz .获取apache的编译参数 apache的编译 ...
- 【转载】PHP5.3 配置文件php.ini-development和php.ini-production的区别
引言 虽然现在PHP版本已经升级至7.*了,由于自己略懒,就在网上找了一篇略谈 php.ini-development 和 php.ini-production 区别的文章,重点是想要最后的那张表. ...
- storage和memory
memory:使用的是值传递,默认使用的是memory,传递的是值 storage:引用传递,传过来的是指针,后面一定要加上internal,private pragma solidity ^; co ...
- 12、Grafan 4.3升级到Grafana 5.0
Upgrading Grafana 升级Grafana We recommend everyone to upgrade Grafana often to stay up to date with t ...
- hasOne、hasMany、belongsTo
这里将hasOne.hasMany.belongsTo进行一个详细举例说明. 首先,这3个的大致中文意思: hasOne:有一个,加上主谓语应该是 ,A 有一个 B hasMany:有很多,A 有很多 ...
- Unable to find header files
在本模块导出头文件时,可以使用如下方式: LOCAL_EXPORT_C_INCLUDE_DIRS := $(MY_DIRECTORY_PATH) LOCAL_EXPORT_C_INCLUDES := ...
- Consideration about improving mathematics study
In this article, I’ll present my ideas about how to improve mathematics study, which are the forewor ...
- eclipse 界面开发--windowbuilder
插件地址: http://www.eclipse.org/windowbuilder/download.php http://www.eclipse.org/windowbuilder/
- Python学习(三十二)—— Django之视图系统
转载自:http://www.cnblogs.com/liwenzhou/articles/8305104.html Django的View(视图) 一个视图函数(类),简称视图,是一个简单的Pyth ...