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
Post a Comment