Как скрыть кнопку с button_to? - PullRequest
       0

Как скрыть кнопку с button_to?

0 голосов
/ 09 февраля 2019

У меня есть индексная страница, и я помещаю button_to в каждую строку.Задача кнопки - отправить содержимое «username» в строке в другую таблицу.Я хочу, чтобы кнопка была скрыта после этого, я хочу, чтобы она снова была видна при удалении из таблицы.

Я выполнил процесс отправки данных, но не смог скрыть кнопку.

#rad_accts_controller
def create
  @rad_acct = Banlist.new(rad_acct_params)

  respond_to do |format|
    if @rad_acct.save
      format.html { redirect_to @rad_acct, notice: 'Banlist was successfully created.' }
      format.json { render :show, status: :created, location: @rad_acct }
      format.js { redirect_to rad_accts_url }
    else
      format.html { render :new }
      format.json { render json: @rad_acct.errors, status: :unprocessable_entity }
      format.js { redirect_to rad_accts_url }
    end
  end
end

 def rad_acct_params
    params.permit(:username)
 end 



#rad_acct view index.html.erb
<% @rad_accts.each do |rad_acct| %>
   <tr class="gradeX">
    <td><%= rad_acct.username %></td>
    <td><%= button_to 'Ban', {:controller => "rad_accts", :action => "create", :username => rad_acct.username } , :method=>:post, data: { confirm: 'Are you sure?' }, remote: true  %></td>
   </tr>
<% end %>

Когда я нажимаю кнопку, имя пользователя в таблице rad_accts копируется в таблицу запретов.Однако кнопка для переданного имени пользователя на индексной странице rad_acct не исчезает.

Когда я удаляю соответствующее имя пользователя на индексной странице банлиста, кнопка на индексной странице rad_acct должна быть видимой

Как я могу это сделать?

Спасибо

Ответы [ 2 ]

0 голосов
/ 09 февраля 2019

класс css должен работать.

.button:active {
   display: none;
}

Активный класс ссылается на ссылку или тег, который уже был нажат.Затем добавляем отображение: нет;класс должен сделать содержимое внутри невидимым.

0 голосов
/ 09 февраля 2019

Вы используете remote: true в кнопке.Это означает, что вызов осуществляется через JavaScript.Это также означает, что любое изменение пользовательского интерфейса также должно обрабатываться через Javascript.Вы можете добавить обработчик onclick для кнопки, предполагая, что вы используете jQuery:

$('button#id-of-button').on('click', function() {
   $(this).hide()
})

Но это только первый шаг, так как перезагрузка заставит кнопку снова показываться.Так что вам нужно сделать кнопку условной на ваш взгляд, а также.Поскольку я не знаю, какие атрибуты вы используете, я использую мета:

#rad_acct view index.html.erb
<% @rad_accts.each do |rad_acct| %>
   <tr class="gradeX">
    <td><%= rad_acct.username %></td>
    <td>
      <% if rad_acct.user_not_banned? %>
        <%= button_to 'Ban', {:controller => "rad_accts", :action => "create", :username => rad_acct.username } , :method=>:post, data: { confirm: 'Are you sure?' }, remote: true  %>
      <% end %>
    </td>
   </tr>
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...