2014-04-23 4 views
0

Здравствуйте, я новичок в ROR, и у меня проблема с маршрутизацией. Мой маршрут является то, что http://localhost:3000/keys/pass.9 и я хочу быть как http://localhost:3000/keys/9/passRuby 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

+0

'член сделать получить«пропуск» end' Для этого вы хотите маршрут члена, а не сбор –

+0

@ user3438570 использование члена в маршрутах .. – sp1rs

ответ

1

Изменение маршрутов как

resources :keys , only: [:new, :show, :create, :edit, :update, :index] do 
    collection do 
    delete 'destroy_multiple' 
    end 
    member do 
    get 'pass' 
    end 
end 
+0

ТНХ !! это сработало. Я заставлю его решить за несколько минут. – theodosis

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

  • Нет связанных вопросов^_^