ror-tutorial-v2-notes

user的基本接口

由于我们使用脚手架生成了User的模型,并且更新了数据库,现在users就是我们的一个资源,可以通过一些rest的接口来对该资源进行操作:

  • /users 列出所有的user
  • /users/1 展示出id为1的user
  • /users/new创建一个新的user
  • /users/1/edit 编辑id为1的user的相关属性

在浏览器中访问http://rails.pureage.info/users. 报错如下:

Started GET "/users" for 127.0.0.1 at 2015-04-05 17:40:03 +0000
Processing by UsersController#index as HTML
  User Load (0.2ms)  SELECT "users".* FROM "users"
  Rendered users/index.html.erb within layouts/application (1.4ms)
Completed 500 Internal Server Error in 38ms (ActiveRecord: 0.2ms)

ActionView::Template::Error (Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes.
  (in /home/fangpeng/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/turbolinks-2.5.3/lib/assets/javascripts/turbolinks.js.coffee)):
    3: <head>
    4:   <title>Helloworld</title>
    5:   <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
    6:   <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
    7:   <%= csrf_meta_tags %>
    8: </head>
    9: <body>
  app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb___925477029561533413_70238705757800'


  Rendered /home/fangpeng/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/actionpack-4.2.1/lib/action_dispatch/middleware/templates/rescues/_source.erb (15.0ms)
  Rendered /home/fangpeng/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/actionpack-4.2.1/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (7.1ms)
  Rendered /home/fangpeng/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/actionpack-4.2.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.5ms)
  Rendered /home/fangpeng/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/actionpack-4.2.1/lib/action_dispatch/middleware/templates/rescues/template_error.html.erb within rescues/layout (46.0ms)
  Rendered /home/fangpeng/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/web-console-2.1.2/lib/web_console/templates/_markup.html.erb (0.4ms)
  Rendered /home/fangpeng/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/web-console-2.1.2/lib/web_console/templates/style.css.erb within layouts/inlined_string (0.4ms)
  Rendered /home/fangpeng/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/web-console-2.1.2/lib/web_console/templates/_inner_console_markup.html.erb within layouts/inlined_string (0.4ms)
  Rendered /home/fangpeng/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/web-console-2.1.2/lib/web_console/templates/_prompt_box_markup.html.erb within layouts/inlined_string (0.4ms)
  Rendered /home/fangpeng/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/web-console-2.1.2/lib/web_console/templates/console.js.erb within layouts/javascript (23.3ms)
  Rendered /home/fangpeng/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/web-console-2.1.2/lib/web_console/templates/main.js.erb within layouts/javascript (0.4ms)
  Rendered /home/fangpeng/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/web-console-2.1.2/lib/web_console/templates/error_page.js.erb within layouts/javascript (0.7ms)
  Rendered /home/fangpeng/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/web-console-2.1.2/lib/web_console/templates/index.html.erb (46.8ms)

可以看出,是因为系统中没有安装javascript的runtime环境。

安装node

首先,安装epel源:

[root@vps1 tmp]# cd /tmp/
[root@vps1 tmp]# wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
[root@vps1 tmp]# rpm -ivh epel-release-7-5.noarch.rpm

然后安装node:

[root@vps1 tmp]# yum install nodejs

安装成功后,重新访问接口http://rails.pureage.info/users

此时没有错误信息了,界面如下:

新建一个user

在浏览器中访问: http://rails.pureage.info/users/new

如下图:

填写name和email并提交后,跳转到如下图:

其中,绿色的提示字是由flash组件产生的。刷新一下页面,即会消失。

同样的,我们可以操作users的其他接口,添加、修改、删除等,这里不一一展示了。