热搜词
发表于 2010-12-9 11:08:40 | 显示全部楼层 |阅读模式
本帖最后由 灰儿 于 2010-12-9 11:10 编辑

用rails建立一个hello world的程序,启动服务,修改路由后,出现错误

  1. Unknown action
  2. No action responded to index. Actions: hello
复制代码
解决办法,修改controllers/welcome_controller.rb(或其他控制器文件),添加
  1. def index
  2. render :text=>"hello world"
  3. end
复制代码

        最令我难堪的问题是项目访问路径,没看书我理所应当的按照127.0.0.1:3000\项目名访问,结果总是找不到路径(竟然为了这么一个问题熬到凌晨3点多,压根就没考虑查一下资料),其实是根本没有了解清rails的url机制,虽然现在不是了解得很全面,但知道以现在这种server的启动方式根本不存在虚拟目录的问题,也就是直接用127.0.0.1:3000访问的就是server所在项目的首页,而其他页面完全靠controller类来指定(controller类文件放在项目\app\controllers目录下),比如我新建test_controller.rb(用redrails时只要命名controller叫test即可,命令行需在项目下运行ruby script\generate controller test),这是项目中会同时产生四个文件app\controllers\test_controller.rb; app\helpers\test_helper.rb; app\view\test\; test\functional\test_controller_test.rb
此时访问127.0.0.1:3000\test会出现
Unknown action
No action responded to index

查资料后修改test_controller.rb内容为
class TestController < ApplicationController
def index
  render_text"这是测试页"
end
end
后再次访问以上路径就会出现这是测试页的字样了,而定义其他url同理增加新的def就可以了,不过是否所有url都要这样来定义我还没有搞清?rails里model实现比较简单,单数对复数即model里定义test.rb则DB建tests表影射,然后在controller里的test_controller.rb加scaffold:test就ok了,最基础的listshoweditdelete操作及表单在这之后自动生成127.0.0.1:3000\test\list
可以自己定义页面模版,比如想订制list页面的,就在test_controller.rb里加入
"def list...end然后编辑view\test\list.rhtml即可,由于...内容与模版中动态程序的书写有关,有时间还需要进一步研究,大概就是数据库对象的声明一类
PS:太晚了,随做随学随写吧

全部评论0
回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|管理员之家 ( 苏ICP备2023053177号-2 )

GMT+8, 2024-11-25 06:46 , Processed in 0.157012 second(s), 22 queries .

Powered by Discuz! X3.5

Cpoyright © 2001-2024 Discuz! Team