I have a data model where a User can like a Project, Suggestion, Comment, or other objects.
The models are set up correctly, and likes/show.rabl works if we were just to support the Project child
object @like
attributes :id, :created_at, :target_type, :target_id, :user_id
child :user => :user do
extends "users/show"
end
child :target do
node do |project|
partial('projects/show', :object => project)
end
end
However, I want to be able to use partials of suggestions/show, comments/show as well depending on target_type.
I tried this but it’s not working:
child :target do |u|
u.target.map do |r|
if r.is_a?(Suggestion)
partial("suggestions/show", :object => r)
elsif r.is_a?(Project)
partial("projects/show", :object => r)
end
end
end
I get undefined method target for <Rabl::Engine:0x69fb988>. However, I don’t get this error in the first case. Any ideas?
Have you tried using
extendsinstead ofpartial?Perhaps you could try something like this?
In this case, when you use
extends, you don’t need to pass in an:objectbecause you’re already in the scope of iterating through with the objectr.