ruby on rails 入门注意事项 2

  1. 云栖社区>
  2. 博客>
  3. 正文

ruby on rails 入门注意事项 2

黄威的世界 2016-05-11 11:52:17 浏览968
展开阅读全文

参考前一篇博客:

 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

网友评论

登录后评论
0/500
评论
黄威的世界
+ 关注