I have a model, view and controller for a view (Feed
) that doesn't have any "local" data. That is, the data is grabbed via a web service call to a client site and rendered in a local view.
The local site needs to verify that the object to grab from the remote site is valid (by verifying that the User
that owns the Feed
has a valid account) and then it displays it.
I had the logic to grab the data from the remote feed in a Feed
model. Then the Feed
controller takes the URL param for the feed id, passes it to the model getFeed
function, and displays it.
However, since there's no table, the Feed.getFeed(params[:feed_id])
call in the controller was returning an error saying there is no table Feed
.
Should I delete the Feed
model and just make the getFeed
function a helper function? What's the proper Rails way to deal with models with no table?
Just because you're using Rails, it doesn't mean every model has to inherit from ActiveRecord::Base
In your situation, I'd simply do something along these lines:
# 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
Remember: it's Ruby on Rails, not just Rails. You can do a lot more than just ActiveRecord models.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With