button_to
создает форму тег, который, безусловно, излишним здесь, также отметить, что button_to
требует URL и приложить некоторые дополнительные JavaScript слушателей на нем. Просто используйте чистый HTML:
<button class="btn" ng-click="editUser(user.id)">
<span class="glyphicon glyphicon-pencil"></span> Edit
</button>
Если вы действительно предпочитаете Еврорадио в какой-либо форме, используйте content_tag
:
<%= content_tag :button, class: 'btn', 'ng-click' => '(editUser(user.id)' do %>
<span class="glyphicon glyphicon-pencil"></span> Edit
<% end %>
Я лично использую HAML для шаблонов, так как он играет очень хорошо с префиксом нг. Многие люди жалуются, что это делает большой файл труднее читать - я думаю, что это хорошо, поскольку оно заставляет вас иметь короткие файлы, для которых удобство чтения просто отлично:
%button.btn{ng: {click: '(editUser(user.id)'}}
%span.glyphicon.glyphicon-pencil
Edit