我试图将一个参数从视图传递到另一个,但是我得到了错误的输出?

时间:2015-03-28 16:31:50

标签: html ruby-on-rails

我要做的是,最初打印此表: -

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

1 个答案:

答案 0 :(得分:0)

更改

get 'show_message' => 'messages#show_message'

get 'show_message/:id' => 'messages#show_message',