I've got model with many associations.
User :has_many => :posts, :videos, :images etc
I've got helper method, which receives one of this association
draw_chart user.videos
def draw_chart(assoc)
assoc.each do |a|
link_to "up开发者_运维知识库date", [a.user, a], :method => :put, :remote => true, :confirm => 'orrly?'
end
end
Problem here is to send extra parameters to update action.
For example I want to get this url: /users/1/videos/2?status=done
but I am confused how to realize this while I am using [a.user, a]
instead of user_videos_path(video, :status => 'done')
. But I can't use last, because it can be either videos, or images or anything else
I wont go using eval, how about this
<%= link_to('update', self.send("user_#{a.class.name.pluralize}_path", a, , :status => 'done'), :method => :put, :remote => true, :confirm => 'orrly?') %>
Only solution I can think up is this strange one:
link_to "update", eval("user_#{a.class.name.tableize}_path(#{a.school.id}, #{a.id}, :status => 'done')"), :method => :put, :remote => true, :confirm => 'orrly?'
but this looks messy
精彩评论