博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ruby on rails 入门注意事项
阅读量:6420 次
发布时间:2019-06-23

本文共 2082 字,大约阅读时间需要 6 分钟。

首先声明:本文不是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

转载地址:http://xtmra.baihongyu.com/

你可能感兴趣的文章
第四节 对象和类
查看>>
闪迪(SanDisk)U盘防伪查询(官方网站)
查看>>
Android onMeasure方法介绍
查看>>
无锁数据结构
查看>>
MySQL的变量查看和设置
查看>>
android onNewIntent
查看>>
XML特殊符号
查看>>
kaptcha可配置项
查看>>
JavaMail邮箱验证用户注册
查看>>
系统时间——ntpd
查看>>
反射实现AOP动态代理模式(Spring AOP实现原理)
查看>>
Http协议与缓存
查看>>
监测超过特定内存阀值进程并结束
查看>>
Linux Centos 查询信息
查看>>
android adb命令
查看>>
python “双”稀疏矩阵转换为最小联通量“单”矩阵
查看>>
揭秘天猫双11背后:20万商家600万张海报,背后只有一个鹿班
查看>>
重置mysq root密码脚本
查看>>
我的友情链接
查看>>
MHA配置参数
查看>>