2014-10-24 4 views
0

Я пытаюсь очистить массив при нажатии кнопки html. У меня есть этот контроллер:Как выполнить действие рельсов при нажатии кнопки html?

class InfoController < ApplicationController 
    $names = {} 
    def show 

    render :print 
    end 

    def as 
    @name = params[:myinfo][:name] 
    @number = params[:myinfo][:number] 
    $names[@name] = @number 
    render :test 

    end 

    def clean 
    $names = {} 
    end 

    def add 
    end 
end 

Как бы идти о выполнении clean действия, когда кнопка внутри этой формы нажата?

<h1>Info print</h1> 
<%= form_for :myinfo do |a| %> 
    <%= a.label :name %> 
    <%= a.text_field :name %><br> 
    <%= a.label :number%> 
    <%= a.text_field :number%><br> 
    <%= a.submit %> 
<%end%> 

<form> 
    <input type="button" onClick=""> 
</form> 

<%= $names.each do |key, val|%> 
    <%=key%> &nbsp 
    <%=val%> 
<%end%> 
+0

Используйте 'button_to' и обеспечивают' info_clean_path' в качестве аргумента, который также должен быть определен в вашем 'routes'. Для получения дополнительной информации о 'button_to' проверьте эти api docs http://apidock.com/rails/ActionView/Helpers/UrlHelper/button_to –

ответ

1

Вы можете написать так:

<form> 
    <%= link_to "clean", clean_path, :class => 'btn btn-primary'%> # you can add btn class if you are using bootstarp 
</form> 

routes.rb:

get 'clean' => "info#clean" 
+0

вы можете объяснить раздел': class => 'btn btn-primary'', пожалуйста, –

+0

@ErielMarimon Это кнопка, которая делает якорь ссылкой как кнопку. Этот стиль будет применяться только в том случае, если вы используете загрузку – anusha

0

Мои Rails немного ржавый, но я думаю, что-то вроде <%= button_to "clean", info_clean_path %> будет работать, при условии, что InfoController#clean имеет определенный маршрут info_clean_path.

Смежные вопросы