这是我的控制器: -
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
答案 0 :(得分:0)
是的,您应该将messages
设置为资源或指定路线:
指定路线:
get 'messages/show' => 'messages#show'
创建资源:
resources :messages
我建议第一个,我建议你要么总是写=>
(我这样做),要么永远不要写,因为它很快就会变得很混乱。