ruby on rails 入门注意事项

简介:

首先声明:本文不是ruby on rails的入门教程

入门教程可以参考:

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

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

http://guides.rubyonrails.org/getting_started.html#saving-data-in-the-controller

本文仅列举入门过程中容易犯的错误

ruby版本:

ruby -v

ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15]

rails版本:

 rails -v

Rails 4.2.6

 gem -v

2.5.1

 rake --version

rake, version 11.1.2

(1)配置文件冒号后面缺少空格

注意:冒号后面需要空格

 

 

(2)获取表单参数

以为

Ruby代码   收藏代码
  1. params[article]  

 可以获取表单提交的参数

article前面要加上冒号

正确:

Ruby代码   收藏代码
  1. params[:article]  

 

(3)持久化表单参数

最开始以为:

Ruby代码   收藏代码
  1. # 增加,持久化到数据库  
  2.   def create  
  3.     articles = Article.create(params[:article])  
  4.     render plain: params[:article].inspect  
  5.   end  

 结果报错:

ActiveModel::ForbiddenAttributesError

正确的:

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

 范例:

Ruby代码   收藏代码
  1. def create  
  2.    @book = Book.new(book_params)  
  3.       
  4.    if @book.save  
  5.       redirect_to :action => 'list'  
  6.    else  
  7.       @subjects = Subject.all  
  8.       render :action => 'new'  
  9.    end  
  10.      
  11. end  
  12.   
  13. def book_params  
  14.    params.require(:books).permit(:title:price:subject_id:description)  
  15. end  

 

 

(4)传递数据到view

以为这样就可以把model传递到view:

Ruby代码   收藏代码
  1. # 条件查询  
  2.   def show  
  3.     id=params[:id]  
  4. article=Article.find_by(id: id)  
  5.      
  6.   end  

 article前面应该加上at符号

正确的:

Ruby代码   收藏代码
  1. # 条件查询  
  2.  def show  
  3.    id=params[:id]  
  4.    @article=Article.find_by(id: id)  
  5.    end  

 

 

添加记录的表单(app/views/articles/new.html.erb):

Ruby代码   收藏代码
  1. <h1>New Article</h1>  
  2. <div>  
  3.   <%= form_for :article, url: articles_path do |f| %>  
  4.       <p>  
  5.         <%= f.label :title %><br>  
  6.         <%= f.text_field :title %>  
  7.       </p>  
  8.   
  9.       <p>  
  10.         <%= f.label :text %><br>  
  11.         <%= f.text_area :text %>  
  12.       </p>  
  13.   
  14.       <p>  
  15.         <input type="text" name="username">  
  16.       </p>  
  17.       <p>  
  18.         <%= f.submit %>  
  19.       </p>  
  20.   <% end %>  
  21.   
  22. </div>  

 注意:等号后面需要空格

查询结果的显示页面(app/views/articles/show.html.erb):

Ruby代码   收藏代码
  1. <div>查询结果:</div>  
  2. <div>  
  3.   <ul>  
  4.     <li>  
  5.       <label for="">title:</label>  
  6.       <label for=""> <%= @article.title %> </label>  
  7.     </li>  
  8.     <li>  
  9.       <label for="">text:</label>  
  10.       <label for=""> <%= @article.text %> </label>  
  11.     </li>  
  12.   </ul>  
  13. </div>  

 (5)启动服务

 

powder link

或者:

 

./bin/rails server(端口默认是:3000)

停止服务:powder unlink

(6)执行migrate

 功能:创建数据表

rake db:migrate

 

rake db:migrate VERSION=20080906120000

相关文章
|
3月前
|
前端开发 测试技术 数据库
使用Ruby on Rails进行快速Web开发的技术探索
【8月更文挑战第12天】Ruby on Rails以其高效、灵活和易于维护的特点,成为了快速Web开发领域的佼佼者。通过遵循Rails的约定和最佳实践,开发者可以更加专注于业务逻辑的实现,快速构建出高质量的Web应用。当然,正如任何技术框架一样,Rails也有其适用场景和局限性,开发者需要根据项目需求和个人偏好做出合适的选择。
|
3月前
|
前端开发 测试技术 API
揭秘Ruby on Rails的神秘力量:如何让你的Web应用飞起来?
【8月更文挑战第31天】Ruby on Rails(简称RoR)是一个基于Ruby语言的开源Web应用框架,自2005年发布以来,因简洁的语法、强大的功能和高效的开发效率而广受好评。RoR采用MVC架构,提高代码可读性和可维护性,拥有庞大的社区和丰富的库支持。本文通过示例代码展示其强大之处,并介绍RoR的核心概念与最佳实践,帮助开发者更高效地构建Web应用。
41 0
|
3月前
|
前端开发 API C++
在Ruby世界中寻找你的Web框架灵魂伴侣:Rails vs Sinatra
【8月更文挑战第31天】在Ruby的世界里,选择Web框架如同挑选衣物,需根据场合和需求。Rails与Sinatra是两大热门框架,前者以其“约定优于配置”理念和全面的功能成为企业级应用的首选;后者则以轻量级和灵活性著称,适用于快速原型开发和小规模应用。通过对比两者特性,如Rails的MVC架构与Sinatra的简洁API,我们可以看到它们各有所长。选择合适的框架,如同找到旅途中的最佳伙伴,让开发之路更加顺畅愉悦。这场探索之旅教会我们,没有绝对的好坏,只有最适合的选择。
33 0
|
3月前
|
安全 前端开发 数据安全/隐私保护
如何在Ruby on Rails中打造坚不可摧的OAuth认证机制
【8月更文挑战第31天】在构建现代Web应用时,认证与授权至关重要。本文介绍如何在Ruby on Rails中实现OAuth认证,通过使用`omniauth`和`devise` gems简化流程。首先安装并配置相关gem,接着在`User`模型中处理OAuth回调,最后设置路由及控制器完成登录流程。借助OAuth,用户可使用第三方服务安全地进行身份验证,提升应用安全性与用户体验。随着OAuth标准的演进,这一机制将在Rails项目中得到更广泛应用。
44 0
|
4月前
|
SQL 安全 数据库
Ruby on Rails 数据库迁移操作深度解析
【7月更文挑战第19天】Rails 的数据库迁移功能是一个强大的工具,它帮助开发者以版本控制的方式管理数据库结构的变更。通过遵循最佳实践,并合理利用 Rails 提供的迁移命令和方法,我们可以更加高效、安全地管理数据库结构,确保应用的稳定性和可扩展性。
|
5月前
|
前端开发 测试技术 数据库
Ruby on Rails:快速开发Web应用的秘密
【6月更文挑战第9天】Ruby on Rails,一款基于Ruby的Web开发框架,以其高效、简洁和强大备受青睐。通过“约定优于配置”减少配置工作,内置丰富功能库加速开发,如路由、数据库访问。活跃的社区和海量资源提供支持,MVC架构与RESTful设计确保代码清晰可扩展。高效的数据库迁移和测试工具保证质量。Rails是快速构建Web应用的理想选择,未来将持续影响Web开发领域。
|
6月前
|
开发框架 安全 前端开发
使用Ruby on Rails进行快速Web开发
【5月更文挑战第27天】Ruby on Rails是一款基于Ruby的高效Web开发框架,以其快速开发、简洁优雅和强大的社区支持著称。遵循“约定优于配置”,Rails简化了开发流程,通过MVC架构保持代码清晰。安装Ruby和Rails后,可使用命令行工具创建项目、定义模型、控制器和视图,配置路由,并运行测试。借助Gem扩展功能,优化性能和确保安全性,Rails是快速构建高质量Web应用的理想选择。
|
6月前
|
监控 数据可视化 前端开发
使用Ruby on Rails构建的员工上网行为监控Web应用
我们开发了一款基于Ruby on Rails的员工上网行为监控Web应用,帮助企业保护数据安全和确保员工生产力。该应用利用Rails的MVC架构和Active Record管理数据库,通过网络代理和JavaScript追踪员工网络活动。数据收集后,应用进行分析和可视化,以便识别异常行为。此外,借助Rails的后台任务和Sidekiq gem,实现数据自动化处理和定时更新,为公司提供实时监控反馈。
316 2
|
6月前
|
缓存 前端开发 测试技术
框架分析(6)-Ruby on Rails
框架分析(6)-Ruby on Rails
|
6月前
|
缓存 关系型数据库 数据库
上云一年烧320万美元,成功“下云”六个月后Ruby on Rails之父现身回了 14 个问题!...
上云一年烧320万美元,成功“下云”六个月后Ruby on Rails之父现身回了 14 个问题!...
49 1