2013-02-15 5 views
0

Я смущен следующие строки:Rails просмотров [запутаться руководство]

<td><%= link_to 'Show', book %></td> 
    <td><%= link_to 'Edit', edit_book_path(book) %></td> 
    <td><%= link_to 'Remove', book, :confirm => 'Are you sure?', :method => :delete %></td> 

из

http://guides.rubyonrails.org/layouts_and_rendering.html 

что 'edit_book_path (книга)' определяется? Не могли бы вы объяснить, что это значит? Смотрит ли он на контроллер «книга» и проверяет метод контроллера «редактировать» при передаче в переменной книге?

Что такое <%= link_to 'Show', book %>? Переходите к методу контроллера «show»? Или отобразить 'show'? Является ли «книга» переданной переменной?

ответ

1
1) <%= link_to 'Show', book %> 
    # => <a href="/resource/show/1">Show</a> 

Это означает, что Show ссылка и путь этого звена book показать. Поэтому, если вы нажмете на Show, будет показана соответствующая книга.

Здесь книга имеет идентификатор 1. Таким образом, вы говорите, что отображается книга с id = 1.

Пример:

link_to "Profile", :controller => "profiles", :action => "show", :id => @profile 
# => <a href="/profiles/show/1">Profile</a> 

Аналогично,

link_to "Profiles", profiles_path 
# => <a href="/profiles">Profiles</a> 

выше ссылка будет иметь Profiles в качестве ссылки и путь к profiles в качестве своего пути.

2) <td><%= link_to 'Edit', edit_book_path(book) %></td> 
      #=> <a href="/book/1/edit">Edit</a> 

Это означает, что Edit ссылка и путь этого звена book для редактирования. Поэтому, если вы нажмете на Edit, соответствующая страница будет отображаться для редактирования.

3) <td><%= link_to 'Remove', book, :confirm => 'Are you sure?', :method => :delete %></td> 
    #=> <a href=book rel="nofollow" data-method="delete" data-confirm="Are you sure?">Remove</a> 

Это означает, что Remove является связующим звеном и путь этого звена book удалить. Поэтому, если вы нажмете на Remove, соответствующая страница книги будет удалена и не будет отображаться в представлении.

3

Пути генерируются маршрутами рубина. Вы можете получить список маршрутов, доступных в вашем приложении, запустив rake routes, который проанализирует ваш файл config/routes.rb и предоставит вам список маршрутов и их соответствующие пути. Результат этой команды должен включать edit_book_path, который, вероятно, сгенерирован линией resources :books в вашем файле config/routes.rb.

+0

Ознакомьтесь с этим руководством по Rails (и особенно этим разделам) для получения дополнительной информации: http://guides.rubyonrails.org/routing.html#paths-and-urls и http://guides.rubyonrails.org/routing. HTML # создание-пути-и-URLs-из-объектов –

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