You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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?
The text was updated successfully, but these errors were encountered:
So child doesn't work with blocks the same way node does. Node calls the block explicitly to merge in the return whereas child traverses the object namespace.
object@foo# root_object is @foochild:targetdo# root_object is now @foo.targetattribute:bar# comes from @foo.target.barendnode:hellodo |hi| # root_object is still @foohi.bar# comes from @foo.barend
What you probably want is to leave your child the way it was but within node, do your if/else checks.
child :target do
node 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 have a data model where a
User
can like aProject, Suggestion, Comment
, or other objects.The models are set up correctly, and
likes/show.rabl
works if we were just to support theProject
childHowever, I want to be able to use partials of
suggestions/show, comments/show
as well depending ontarget_type
.I tried this but it's not working:
I get
undefined method target for <Rabl::Engine:0x69fb988>
. However, I don't get this error in the first case. Any ideas?The text was updated successfully, but these errors were encountered: