我要做的是,最初打印此表: -
id content from to have_read created_at updated_at
1 xyz xxx qwe 0 xxxx xxxx
2 xyz xxx yyy 1 xxxx xxxx
3 xyt xxx xxx 0 xxxx xxxx
当用户点击任何ID时,它将链接到新页面。在那里它将显示所选行的所有细节。
这是我的表格的html文件: -
<% @messages.each do |m| %>
<% if m.to == get_user %>
<tr>
<td><font color="blue"><%= link_to m.id, show_message_path(m) %></font></td>
<td><%=m.from%></td>
<td><%=m.subject%></td>
<td><%=m.created_at%></td>
</tr>
<% end %>
<% end %>
我正在使用“show_message_path(m)”,以便它将传递所选行。
我的控制器是: -
class MessagesController < ApplicationController
def new
@messages = Message.all
end
def show_message
@messages = Message.find_by(params[:id])
end
end
这是show_message.html.erb的内容: -
<h1><%=@messages.id%></h1>
我注意到,无论我选择了哪一行,打印的ID始终为“1”。
我已经为另一个项目使用了类似的方法,它在那里工作得很好。我不会在哪里出错。
这是我的routes.rd文件: -
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'
get 'show_message' => 'messages#show_message'
resources :users
resources :messages
end
答案 0 :(得分:0)
更改
get 'show_message' => 'messages#show_message'
到
get 'show_message/:id' => 'messages#show_message',