2013-09-20 3 views
0

Я только начинаю с Ruby on Rails и тренируюсь, создаю простое приложение для ведения блогов. На странице я создал, чтобы просмотреть список всех сообщений, все данные, передается на страницу визуализируется в массиве вблизи верхней части страницы, как так:Ruby on Rails рендеринга все данные из базы данных

enter image description here

я не могу выяснить, почему массив отображается. Вот контроллер для этой страницы:

def index 
    @posts = Post.all 
end 

И Heres вид:

<h1>Listing posts</h1> 
<table> 
<tr> 
    <th>Title</th> 
    <th>Text</th> 
</tr> 

<%= @posts.each do |post| %> 
    <tr> 
     <td><%= post.title %></td> 
     <td><%= post.text %> </td> 
    </tr> 
<% end %> 
</table> 

и для маршрута я попытался как:

get '/posts/(.:format)' => 'posts#index' 

и

get '/posts' => 'posts#index' 

Кроме того, в качестве побочного вопроса, что делает (.: Form at) do в любом случае? Кажется, что страница работает одинаково, включила ли я это в маршрут или нет.

ответ

4

При использовании знака «=» в представлении это делает результат в HTML:

<%= @posts.each do |post| %> 

Изменить выше линии:

<% @posts.each do |post| %> 

Формат только полезно, если вы хотите для рендеринга нескольких форматов (по умолчанию это html), но вы можете вызвать страницу с помощью «.xls» или «.json» и т. д., а затем добавить код в свой контроллер для ответа на эти форматы.

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