ruby on rails 入门注意事项 2

简介:

参考前一篇博客:

 http://hw1287789687.iteye.com/blog/2288230

(7)更新记录(保存更新)

我的写法:

 

Ruby代码   收藏代码
  1. def update  
  2.   
  3.     articles = Article.update(params[:id], params.require(:article).permit(:title:text))  
  4.     redirect_to :action => 'list'  
  5.   end  

  最佳实践:

 

 

Ruby代码   收藏代码
  1. def update  
  2.     @article = Article.find(params[:id])  
  3.     @article.update(params.require(:article).permit(:title:text))  
  4.   
  5.     redirect_to :action => 'list'  
  6.   end  

 先通过id查询记录,然后再更新,而不是直接更新

 

(8)手动指定视图

 

Ruby代码   收藏代码
  1. render template: "articles/show"  

  类似于springMVC中的:

 等价于:

Ruby代码   收藏代码
  1. render :show  

下面的方式达到的效果是完全相同的: 

Ruby代码   收藏代码
  1. render :edit  
  2. render action: :edit  
  3. render "edit"  
  4. render "edit.html.erb"  
  5. render action: "edit"  
  6. render action: "edit.html.erb"  
  7. render "books/edit"  
  8. render "books/edit.html.erb"  
  9. render template: "books/edit"  
  10. render template: "books/edit.html.erb"  
  11. render "/path/to/rails/app/views/books/edit"  
  12. render "/path/to/rails/app/views/books/edit.html.erb"  
  13. render file: "/path/to/rails/app/views/books/edit"  
  14. render file: "/path/to/rails/app/views/books/edit.html.erb"  

 

 

 

 

(9)浏览器跳转

使用redirect_to

 

Ruby代码   收藏代码
  1. # 增加,持久化到数据库  
  2.   def create  
  3.     articles = Article.create(params.require(:article).permit(:title:text))  
  4.     # render plain: params[:article].inspect  
  5.     redirect_to :action => 'list'  
  6.   end  

 类似于spring MVC中的

response.sendRedirect


 

 

 

(10)CRUD

增:

Ruby代码   收藏代码
  1. Article.create(params.require(:article).permit(:title:text))  

 

删除:

Ruby代码   收藏代码
  1. id=params[:id]  
  2.     Article.find(id).destroy;  

 

改:

Ruby代码   收藏代码
  1. @book = Book.find(params[:id])  
  2. @book.update(book_params)  

 

条件查询

Ruby代码   收藏代码
  1. @article=Article.find_by(id: id)  

 

查询所有

Ruby代码   收藏代码
  1. @articles=Article.all  

 

(11)指定请求方式

使用method

Ruby代码   收藏代码
  1. <%= form_for :article, method: "PUT", url: {action: "update"do |f| %>  

 (12)rubyonrails中好像没有Java Web中的forward跳转

知道在rails中forward跳转的同学麻烦告诉我下

(13)构造表单时推荐使用form_for

we used form_for tag for the form action. It will perform better than form_tag. Why because it will create interaction with the Model easily. Therefore it is better to use form_for tag whenever you need interaction between the model and the form fields.

翻译:

我们使用form_for实现表单提交.它比form_tag 更强大.为什么呢?

因为form_for 可以更方便地与Modeal进行交互(数据绑定).

因此,无论什么时候,你需要在model和表单之间进行数据传递时推荐使用form_for.

 参考:

http://www.tutorialspoint.com/ruby-on-rails/rails-controllers.htm

http://guides.rubyonrails.org/layouts_and_rendering.html

http://www.tutorialspoint.com/ruby-on-rails/rails-views.htm

 了解更多:ruby on rails 入门注意事项 3

相关文章
|
4月前
|
缓存 关系型数据库 数据库
上云一年烧320万美元,成功“下云”六个月后Ruby on Rails之父现身回了 14 个问题!...
上云一年烧320万美元,成功“下云”六个月后Ruby on Rails之父现身回了 14 个问题!...
25 1
|
5月前
|
SQL 前端开发 数据库
前端学 Ruby:熟悉Rails
前端学 Ruby:熟悉Rails
160 0
|
5月前
|
前端开发 Linux 数据库
前端学 Ruby:安装Ruby、Rails
前端学 Ruby:安装Ruby、Rails
74 0
|
7月前
|
Java Linux 应用服务中间件
在 Ruby on Rails 应用程序中重用 Java 代码
在 Ruby on Rails 应用程序中重用 Java 代码
|
9月前
|
存储 前端开发 关系型数据库
Ruby on Rails 快速入门2
Ruby on Rails 快速入门2
126 0
|
9月前
|
移动开发 前端开发 关系型数据库
Ruby on Rails 快速入门1
Ruby on Rails 快速入门1
81 0
|
机器学习/深度学习 开发框架 Java
别梦依稀咒逝川,Ruby二十八年前|M1芯片Mac os系统配置Ruby(3.0.0) on Rails(6.1.1)开发环境
在每个开发者心里,都会有一门“最好”的语言,在这个世界的某个深处,在一些矫矫不群的人们心中,这门语言的名字叫做Ruby,它今年二十八岁了,历史和Java一样的悠久,但是它没有大厂背书、它的性能被开发者诟病、时至今日依然无法高效利用多核资源,甚至于它每年都要被“死亡”一次,相比于有太阳计算机系统、甲骨文、IBM 这些大公司支持的 Java,它是那么的一无所有,但是,它又拥有全世界最虔诚的“信徒”,拥有最活跃的开发者社区,这一切,又让它是那么的应有尽有。是的,这就是Rubyist的理念:有的时候,你想证明给一万个人看,到后来,你发现只得到了一个明白的人,那就够了。
别梦依稀咒逝川,Ruby二十八年前|M1芯片Mac os系统配置Ruby(3.0.0) on Rails(6.1.1)开发环境
|
JavaScript 前端开发 Java
基于Docker在Win10平台搭建Ruby on Rails 6.0框架开发环境
2023年,“非著名Web框架”--Ruby on Rails已经18岁了。在今年,Rails 6.0趋于完善,除了拿掉讨厌的Jquery,Webpacker 也成为默认前端打包方案,Sprockets 开始软着陆,未来很可能会和Jquery一样被彻底废弃,这就是历史的进程。
基于Docker在Win10平台搭建Ruby on Rails 6.0框架开发环境
|
开发框架 安全 Ruby
CVE-2018-3760 Ruby On Rails 路径穿越漏洞
CVE-2018-3760 Ruby On Rails 路径穿越漏洞
167 0
CVE-2018-3760 Ruby On Rails 路径穿越漏洞
|
安全 Ruby
CVE-2019-5418 Ruby on Rails 路径穿越与任意文件读取漏洞
CVE-2019-5418 Ruby on Rails 路径穿越与任意文件读取漏洞
181 0
CVE-2019-5418 Ruby on Rails 路径穿越与任意文件读取漏洞