use*_*289 9 activerecord ruby-on-rails ruby-on-rails-4
我有一个Feed没有任何"本地"数据的view()的模型,视图和控制器.也就是说,数据通过Web服务调用抓取到客户端站点并在本地视图中呈现.
本地站点需要验证从远程站点获取的对象是否有效(通过验证User拥有该对象的对象是否有效Feed)然后显示它.
我有逻辑从Feed模型中的远程源获取数据.然后Feed控制器获取feed id的URL参数,将其传递给模型getFeed函数,并显示它.
但是,由于没有表,Feed.getFeed(params[:feed_id])控制器中的调用返回错误说there is no table Feed.
我应该删除Feed模型,只是让getFeed函数成为辅助函数吗?什么是正确的Rails方式来处理没有表的模型?
仅仅因为你使用Rails,并不意味着每个模型都必须继承 ActiveRecord::Base
在你的情况下,我只是按照以下方式做一些事情:
# app/models/feed.rb
class Feed
def initialize(feed_id)
@feed_id = feed_id
end
def fetch
# ... put the web-service handling here
end
# encapsulate the rest of your feed processing / handling logic here
end
# app/controllers/feeds_controller.rb
class FeedsController < ActionController::Base
def show
@feed = Feed.new(params[:feed_id])
@feed.fetch
# render
end
end
Run Code Online (Sandbox Code Playgroud)
记住:它是Ruby on Rails,而不仅仅是Rails.您可以做的不仅仅是ActiveRecord模型.
| 归档时间: |
|
| 查看次数: |
4993 次 |
| 最近记录: |