A View Rails é um programa ERb que compartilha dados com os controladores através de variáveis mutuamente acessíveis.
Se você olhar no diretório app / vista da aplicação de biblioteca, você vai ver um subdiretório para cada um dos controladores que criamos: livro. Cada um destes subdiretórios foi criado automaticamente quando o controlador de mesmo nome foi criado com o script generate.
Agora, assumindo que o seu servidor web está em funcionamento. Tente dar a seguir na caixa de endereço do seu navegador:
Você começa a seguinte mensagem de erro porque você não definiu qualquer arquivo de visão para qualquer método definido no controlador.
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Rails permite que você saiba que você precisa para criar o arquivo de exibição para o novo método. Cada método definido na controlador precisa ter um arquivo RHTML correspondente, com o mesmo nome que o método, para exibir os dados de que o método é colectores.
Assim, permite criar arquivos de visão para todos os métodos que definimos em book_controller.rb.
Criação de arquivo de exibição para o método de lista:
Crie um arquivo chamado list.rhtml usando seu editor de texto favorito e salvá-lo em app / views / livro. Depois de criar e salvar o arquivo, atualize seu navegador. Você deverá ver uma página em branco, se você não fizer isso, verifique a ortografia de seu arquivo e certifique-se de que é o exatamente o mesmo método que o seu controlador.
Agora exibir conteúdo real vamos colocar seguinte código list.rhtml.
O código a ser executado é verificar se a matriz de livros tem quaisquer objetos nele. O branco.? método retorna true se a matriz é vazia e falsa se ele contém todos os objetos. Este objeto foi criado em livros controlador dentro método lista.
O código entre o <% =%> marcas é uma chamada de método link_to. O primeiro parâmetro de link_to é o texto a ser exibido entre as tags . O segundo parâmetro é o que ação é chamada quando o link é clicado. Neste caso, é o método show. O parâmetro final é o id do livro que é passado através do objeto params.
Agora tente atualizar seu navegador e você deve ter tela seguinte, porque não temos qualquer livro em nossa biblioteca.
Nenhuma mensagem Livro
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Criação de arquivo de visão do novo método:
Até agora não temos qualquer livro em nossa biblioteca. Temos de criar poucos livros no sistema. Assim, permite desenho uma vista correspondente à nova metodologia definida no book_controller.rb.
Crie um arquivo chamado new.rhtml usando seu editor de texto favorito e salvá-lo em app / views / livro. Adicione o seguinte código para o arquivo new.rhtml.
Aqui método start_form_tag () interpreta o código Ruby em um
Se você olhar no diretório app / vista da aplicação de biblioteca, você vai ver um subdiretório para cada um dos controladores que criamos: livro. Cada um destes subdiretórios foi criado automaticamente quando o controlador de mesmo nome foi criado com o script generate.
Agora, assumindo que o seu servidor web está em funcionamento. Tente dar a seguir na caixa de endereço do seu navegador:
Código:
http://localhost:3000/book/list
Você começa a seguinte mensagem de erro porque você não definiu qualquer arquivo de visão para qualquer método definido no controlador.
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Rails permite que você saiba que você precisa para criar o arquivo de exibição para o novo método. Cada método definido na controlador precisa ter um arquivo RHTML correspondente, com o mesmo nome que o método, para exibir os dados de que o método é colectores.
Assim, permite criar arquivos de visão para todos os métodos que definimos em book_controller.rb.
Criação de arquivo de exibição para o método de lista:
Crie um arquivo chamado list.rhtml usando seu editor de texto favorito e salvá-lo em app / views / livro. Depois de criar e salvar o arquivo, atualize seu navegador. Você deverá ver uma página em branco, se você não fizer isso, verifique a ortografia de seu arquivo e certifique-se de que é o exatamente o mesmo método que o seu controlador.
Agora exibir conteúdo real vamos colocar seguinte código list.rhtml.
Código:
<% if @books.blank? %>
<p>There are not any books currently in the system.</p>
<% else %>
<p>These are the current books in our system</p>
<ul id="books">
<% @books.each do |c| %>
<li><%= link_to c.title, {:action => 'show', :id => c.id} -%></li>
<% end %>
</ul>
<% end %>
<p><%= link_to "Add new Book", {:action => 'new' }%></p>
O código a ser executado é verificar se a matriz de livros tem quaisquer objetos nele. O branco.? método retorna true se a matriz é vazia e falsa se ele contém todos os objetos. Este objeto foi criado em livros controlador dentro método lista.
O código entre o <% =%> marcas é uma chamada de método link_to. O primeiro parâmetro de link_to é o texto a ser exibido entre as tags . O segundo parâmetro é o que ação é chamada quando o link é clicado. Neste caso, é o método show. O parâmetro final é o id do livro que é passado através do objeto params.
Agora tente atualizar seu navegador e você deve ter tela seguinte, porque não temos qualquer livro em nossa biblioteca.
Nenhuma mensagem Livro
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Criação de arquivo de visão do novo método:
Até agora não temos qualquer livro em nossa biblioteca. Temos de criar poucos livros no sistema. Assim, permite desenho uma vista correspondente à nova metodologia definida no book_controller.rb.
Crie um arquivo chamado new.rhtml usando seu editor de texto favorito e salvá-lo em app / views / livro. Adicione o seguinte código para o arquivo new.rhtml.
Código:
<h1>Add new book</h1>
<%= start_form_tag :action => 'create' %>
<p><label for="book_title">Title</label>:
<%= text_field 'book', 'title' %></p>
<p><label for="book_price">Price</label>:
<%= text_field 'book', 'price' %></p>
<p><label for="book_subject">Subject</label>:
<%= collection_select(:book,:subject_id,@subjects,:id,:name) %></p>
<p><label for="book_description">Description</label><br/>
<%= text_area 'book', 'description' %></p>
<%= submit_tag "Create" %>
<%= end_form_tag %>
<%= link_to 'Back', {:action => 'list'} %>
Aqui método start_form_tag () interpreta o código Ruby em um