Здравствуйте, я новичок в ROR, и у меня проблема с маршрутизацией. Мой маршрут является то, что http://localhost:3000/keys/pass.9
и я хочу быть как http://localhost:3000/keys/9/pass
Ruby on Rails route
Посмотрите мои маршруты:
resources :keys , only: [:new, :show, :create, :edit, :update, :index] do
collection do
delete 'destroy_multiple'
get 'pass'
end
конец
контроллер:
class KeysController < ApplicationController
def pass
Key.find(params[:id]).update_attribute(:passwrod,SecureRandom.urlsafe_base64)
respond_to do |format|
format.html { redirect_to books_path }
format.json { head :no_content }
flash[:success] = "Profile updated"
end
end
и вид:
<div class="center hero-unit">
<h1>Listing keys</h1>
<%= form_tag destroy_multiple_keys_path, method: :delete do %>
<table>
<thead>
<tr>
<th></th>
<th>Url</th>
<th>Username</th>
<th>Passwrod</th>
<th>Category</th>
</tr>
</thead>
<tbody>
<div>
<% for key in @keys %>
<% if key.book.name == @book %>
<tr>
<td><%= check_box_tag "key_ids[]", key.id %></td>
<td><%=key.url %></td>
<td><%=key.username %></td>
<td><%=key.passwrod %></td>
<td><%=key.category %></td>
<td><%= link_to 'Edit',edit_key_path(key) %></td>
<td> <%= link_to 'Change password', pass_keys_path(key) %> </td>
</tr>
<% end %>
<% end %>
<tr>
<td> <input type="button" value="check all" onclick="$(this.form).getInputs('checkbox').each(function (elem) {elem.checked = true;});" /> </td>
</tr>
</div>
<%= submit_tag "Delete selected" %>
<% end %>
<%= link_to 'New Key', new_key_path %>
<%= link_to 'Back', books_path %>
</div>
и я получаю эту ошибку прямо сейчас:
Не удалось найти ключ без ID
'член сделать получить«пропуск» end' Для этого вы хотите маршрут члена, а не сбор –
@ user3438570 использование члена в маршрутах .. – sp1rs