问题描述
搞两天了, 没搞明白怎么把REST And ActiveResource用到ror项目中去, 急需指点呀.... 问题补充:夜鸣猪 写道
解决方案
1.是self是Blog项目的地址2. 必须要XML如果你按照我的步骤,简单的试一下,调用的时候会看到引用Started GET "/payments.xml" for 127.0.0.1 at Mon Aug 15 09:13:17 -0400 2011 Processing by PaymentsController#index as XML Payment Load (1.9ms) SELECT `payments`.* FROM `payments`Completed 200 OK in 6772ms (Views: 6611.3ms | ActiveRecord: 1.9ms)然后,如果你还不能确定,也可以把对应的xml返回删除了你会发现页面报错引用ActiveResource::ClientError in Articles#indexShowing /home/ra/workspace/rails_project/datefield/app/views/articles/index.html.haml where line #2 raised:Failed. Response code = 406. Response message = Not Acceptable.问问题挺好的,自己动手也很重要,多试试吧,可能学的更快。我们现在说的都是ActiveResouce最基本的东西,起始还有很多细节,比如,ssl怎么用,比如,有用户名密码的怎么互相通信。Model名重了怎么弄,验证怎么写,总之,真正用的时候,还是有些细节的anyway,希望对你有帮助
解决方案二:
嗯,这样说也清楚一些了。ActiveResource吧,简单说,你可以这样用引用1. rails new blog2. cd blog 3. rails g scaffold post name:string4. cd ..5 rails new shelf6 cd shelf7 rails g scaffold book name:string__________________________________________以上是准备了两个rails应用,都是rest xml返回的然后,写ActiveResource在shelf项目下,新建post modelclass Post < ActiveResource::Base self.site = 'http://localhost:3000'end___________________________________________这就已经可以了。下面是验证一下在shelf项目下books controller里,可以调用post的方法了,比如Post.new或者Post.all实际上是在Blog项目中增加和修改的。 最基本的东西啊,都是很容易的。希望有帮助吧。
解决方案三:
你这问题提的啊,让人有心回答都不知道怎么讲REST啊,知道了就那么回事,没怎么用呢,细节也不少,得了解router,得了解form的对应写法。相信你也看了,现在Rest的文章和例子也挺多的,就照着改吧。不过要说,最快用上的办法,或者你要看个例子,最简单的办法就是写个scaffold,一些都有了,直接是rest。还能给后面ActiveResource用,ActiveRecource,设计来沟通不同Rails项目的。就是ActiveRecord调用下面的数据库,ActiveRecource把一个Rails应用当Model用。例子也不少,想要简单的用也比较容易泛泛的问题,只能泛泛的回答,感觉不能起啥用。在SOF上会被vote down吧。