我得到了“我们很抱歉,但出了点问题。”尝试从浏览器窗口访问页面时出错?

时间:2015-03-27 06:55:33

标签: html ruby-on-rails

这是我的控制器: -

class MessagesController < ApplicationController
  def new
   @messages = Message.all
  end

  def show
   @messages = Message.all
  end   
end

这是new.html.erb: -

<%= @messages.name %>, <%= @messages.email %>

这是我的show.html.erb: -

<h1>Inbox</h1>
<table width="500" height="20" border="0" class="borderTable inlineTable" >
  <tr>
    <th>FROM</th>
    <th>SUBJECT</th>
    <th>RECEIVED AT</th>
    <th></th>
    <th></th>
    <th></th>
  </tr>

<% @messages.each do |m| %>
 <% if m.to == get_user %> 
   <% if m.have_read == 0 %> 
   <font color="red">   
  <tr>
    <td><font color="blue"><%= link_to m.from, "#" %></font></td>
    <td><font color="blue"><%= link_to m.subject, "#" %></font></td>
    <td><font color="blue"><%= link_to m.created_at, "#" %></font></td>
  </tr>
   <% else %>
  <tr>
    <td><%=link_to m.from , "#"%></td>
    <td><%=link_to m.subject , "#"%></td>
    <td><%=link_to m.created_at, "#" %></td>
  </tr>
  <% end %> 
 <% end %>
<% end %>
</table>

<br>  

当我尝试通过输入&#34; http://localhost:3000/messages/new&#34;来尝试访问新页面时我得到了正确的页面。 但是,当我尝试访问&#34; http://localhost:3000/messages/show&#34;我收到错误。

我手动制作了show.html.erb。我应该在routes.rb文件中指定一些内容,以使其正常工作吗?

这是我的routes.rf文件: -

Rails.application.routes.draw do
  get 'messages/new'

  root                'static_pages#home'
  get    'help'    => 'static_pages#help'
  get    'about'   => 'static_pages#about'
  get    'contact' => 'static_pages#contact'
  get    'signup'  => 'users#new'
  get    'newmain'  => 'users#newmain'  
  get    'login'   => 'sessions#new'
  post   'login'   => 'sessions#create'
  delete 'logout'  => 'sessions#destroy'

  resources :users


end

1 个答案:

答案 0 :(得分:0)

是的,您应该将messages设置为资源或指定路线:

指定路线:

get 'messages/show' => 'messages#show'

创建资源:

resources :messages

我建议第一个,我建议你要么总是写=>(我这样做),要么永远不要写,因为它很快就会变得很混乱。