开发者社区> 黄威的世界> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
推荐 7 款最好的 Ruby on Rails 集成开发环境
Ruby 是个动态面向对象、通用的编程语言。它支持多种编程范式,包括面向功能和面向对象。同时它也包括一个动态类型系统和自动内存管理。 编辑器和集成开发环境(IDE)有些不同,编辑器是用来添加,编辑,查看文件内容的工具,而 IDE 则是一系列大致集中在一个共同任务的工具,比如 Ruby 开发,和所有包含这种形式的编辑器。
121 0
Radiant: 基于Ruby on Rails的内容管理系统
Radiant是一个开源的CMS[内容管理系统],建立于Ruby on Rails。Radiant是为一些小的开发团队而创建的[Publishing for Small Teams],因为它的相关操作需要一些编程知识。
725 0
+关注
黄威的世界
我是一个热衷IT技术的人,希望自己不断地设计开发出对别人非常有用的软件。有近7年的java开发经验(包括2年Android开发经验)和一年左右的linux使用经验。擅长Java Web后台开发 ,喜欢研究新的各种实用技术
667
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载