以下项目,在Ubuntu 22.04,安装rbenv, ruby 3.2.1,rails 7.0.4.2下运行
本文中的例子将演示MVC,Model-View-Controller,以及RESTful风格的URI是如何在route.rb中被映射为Controler的Action。
用rails新建一个名为myTest的项目
rails new myTest
cd myTest
新建过后在项目当前目录,就可以运行项目,让网站上线。 运行项目时,-b选项为指定ip地址(WSL的ip地址每次都会动态变化,Ubuntu可以用命令ip addr查看),不加则在localhost监听
#运行
rails server -b 172.19.244.110 #指定ip地址监听
#ctrl+d终止
运行过后,可以在http://yourip:3000/ 访问网站(yourip是你机器的ip,在其他机器或者windows访问wsl中的ubuntu),如果不加-b选项,在本机的话,http://localhost:3000/即可访问
rails生成的模板默认采用erb模板,如果使用haml作为模板解析工具,修改Gemfile,添加这一行
gem 'haml-rails’
修改文件过后,必须安装,在shell下运行
bundle install
我们可以在浏览器查看http://yourip:3000/movies,这是有错误信息,会显示当前的route及映射到的controller和action。
修改路由 config/routes.rb
Rails.application.routes.draw do
resources :movies
# Define your application routes per the DSL in <https://guides.rubyonrails.org/routing.html>
# Defines the root path route ("/")
root "movies#index"
end
添加的rousources :movies 将产生movie模型的所有RESTFUL风格的URI和映射。修改后,在浏览器查看http://yourip:3000/movies 将会看到新增加的映射。
生成一个数据表
rails generate migration create_movies
如果成功,则会在db/migrate目录下看到一个名字类似于20230311100438_create_movies.rb的文件。我们修改文件内容如下,创建相应字段。电影对象包括,title,rating,description,release_date等4个用户定义字段,timestamps由系统维护,模型映射到数据库后还会自动生成id字段