ruby on rails - Rendering string with erb content on page -


i found many posts problem, it's seems none of them solves problem. got code want render string:

<%= button_to "/admin/#{contr_name}/#{obj.id}", method: :delete, class: 'btn btn-danger btn-resource-destroy', data: {toggle: 'tooltip'}, title: 'delete' %>    <%= icon('trash-o') %> <span class='sr-only'>delete</span> <% end %> 

i have tried this:

template += "<div class='col-sm-4'>" template += "<%= button_to \"/admin/#{contr_name}/#{obj.id}\", method: :delete, class: 'btn btn-danger btn-resource-destroy', data: {toggle: 'tooltip'}, title: 'delete' %>    <%= icon('trash-o') %> <span class='sr-only'>delete</span> <% end %>" template += "</div>" erb.new(template).result(binding) 

but syntax errors.

how can fix this?

i suggest use partials instead.

first, define partial at, example, views/shared/_delete_button.html.erb:

<%= button_to "/admin/#{contr_name}/#{obj.id}", method: :delete, class: 'btn btn-danger btn-resource-destroy', data: {toggle: 'tooltip'}, title: 'delete' %>    <%= icon('trash-o') %> <span class='sr-only'>delete</span> <% end %> 

then, can render partial wanted parameters:

render 'shared/delete_button', contr_name: [contr_name], obj: [obj] 

replacing [contr_name] , [obj] whatever want variables assigned to.

or, better, allow partial extract controller's name predefined variables, this:

<%= button_to "/admin/#{controller.controller_name}/#{obj.id}", method: :delete, class: 'btn btn-danger btn-resource-destroy', data: {toggle: 'tooltip'}, title: 'delete' %>    <%= icon('trash-o') %> <span class='sr-only'>delete</span>  <% end %> 

now need supply obj when rendering it.

render 'shared/delete_button', obj: [obj] 

you use named routes, , [route_name]_path(obj) instead of manually constructing path.


Comments

Popular posts from this blog

amazon web services - S3 Pre-signed POST validate file type? -

c# - Check Keyboard Input Winforms -