Ruby on rails 如何显示单个列表?RubyonRails

Ruby on rails 如何显示单个列表?RubyonRails,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我目前正在一个简单的网站上工作,人们可以在那里列出帖子。大部分代码都基于Michael Hartl的教程。 我希望用户能够单击单独显示列表的链接。 目前,每个用户的列表都位于 http://localhost:3000/users/id 每个列表都有自己的id 这是我的路线 Rails.application.routes.draw do resources :users resources :sessions, only: [:new, :create, :destroy]

我目前正在一个简单的网站上工作,人们可以在那里列出帖子。大部分代码都基于Michael Hartl的教程。 我希望用户能够单击单独显示列表的链接。 目前,每个用户的列表都位于

http://localhost:3000/users/id
每个列表都有自己的id 这是我的路线

Rails.application.routes.draw do
    resources :users
    resources :sessions, only: [:new, :create, :destroy]
    resources :listings


  root 'static_pages#home'


  match '/signup',  to: 'users#new',            via: 'get'
  match '/signin',   to: 'sessions#new',          via: 'get'
  match '/signout', to: 'sessions#destroy',     via:'delete'
  match '/help',      to: 'static_pages#help',    via: 'get'
  match '/contact',   to: 'static_pages#contact',  via: 'get'
  match '/about',     to: 'static_pages#about',   via: 'get' 
  match '/new',     to: 'listings#new',           via: 'get' 
这是我的清单_controller.rb

class ListingsController < ApplicationController
    before_action :signed_in_user, only: [:create, :destroy, :edit]
    before_action :correct_user,   only: :destroy

def create
    @listing = current_user.listings.build(listing_params)
    if @listing.save
        flash[:success] = "Job Post created"
        redirect_to current_user
        else
            render 'listings/new'
        end
    end

    def edit
    end

    def show
        @listing = Listing.find(params[:id])

    end

    def new
        @listing = Listing.new
        @listings = Listing.paginate(page: params[:page])
    end

def destroy 
    @listing.destroy
    redirect_to current_user
end

private 

def listing_params
    params.require(:listing).permit(:description, :location, :title)
end

def correct_user
    @listing = current_user.listings.find_by(id: params[:id])
    redirect_to current_user if @listing.nil?
end

def current_listing
    @listings = listing.find(params[:id])
end

end
class ListingsController
我还在listings文件夹下为每个列表创建了一个显示页面。 显示页面本身可以工作。 下面是清单的show.html.erb

<div class="show_listing">

    <div class="col-md-6">
    <div class="col-md-6">
        <h3><%= @listing.title %></h3>
        <h3><%= @listing.location %></h3>
        <p><%= @listing.description %></p><br>
        <div class="center">
        <%= link_to "Apply Now", '#', class: "btn btn-info", data: {no_turbolink: true} %>
    </div>
    </div>
</div>
</div>

<div class="show_link_position">
<% if current_user == @listing.user %>
<%= link_to 'Edit', '#', class: "btn btn-link" %> |
<% end %>
<%= link_to 'Back', current_user, class: "btn btn-link" %>
</div>


|
现在,我想在用户页面(每个列表下)上有一个链接,分别链接到每个帖子

我在找这样的东西

多谢各位
如果您需要更多信息

来从一个页面创建链接,该页面上的列表集合为
@listings
,请告诉我,您可能有以下内容

<ol class="listings">
  <% @listings.each do |listing| %>
    <div class="listing">
      <h2><%= listing.title</h2>
      <h3><%= listing.location</h3>
      <p><%= listing.description</p>
      <%= link_to "Show", listing, class: "btn btn-link" %>
    </div>
  <% end %>
</ol>


下面是我为使它工作所做的工作(借助下面的stackoverflow帖子,如何显示到单个MicroPost的链接?(RubyonRails3))

路线rb

match '/users/:id/:id', to 'listings#show', via: :get, as: :user_listing
用户查看文件

添加链接

<li><%= link_to "Show", user_listing_path(id: @user.id, id: listing.id) %></li>

这是个好主意,但我想链接到每个单独的列表。清单由标题位置和描述组成。我建议的代码将发出一个指向@listing集合中所有清单的链接“列表”。你试过我的建议了吗?我想创建一个链接(位于listings集合中显示show的每个列表下),单击该链接将打开一个新的show页面,仅显示一个特定列表。我尝试了你的建议,它创建了一个带有列表标题的链接列表,但这并不是我想要的。好吧。。。我只是尽量让答案简短,并把重点放在获取链接的基本问题上。我想你可以自己添加列表的其余部分。很抱歉,我没有那么快理解它,但我对Rails非常陌生。当我使用链接时,我得到以下错误:未定义的局部变量或方法'listing',我认为您有问题。这表明用户ID和列表ID是相同的???您通常会有类似于
'/users/:user\u id/:id'
的内容,以便您的控制器可以分别在
参数中找到它们。hm。。。我不确定。不过,它起作用了。用户Id和列表Id也不应该相同。有一个列表表和一个用户表。列表和用户都有自己的id。
def show
            @user = User.find_by_id(params[:id])
            @listing = Listing.find_by_id(params[:id])

        end