我目前正在开发一个简单的网站,人们可以在其中列出帖子。大部分代码都基于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'
这是我的listing_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
我还在列出文件夹文件夹下为每个列表创建了一个显示页面。 节目页面本身有效。 这是列表
的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>
现在,我希望在用户页面(每个列表下方)上有一个链接,可以单独链接到每个帖子。
我正在寻找类似的东西 how to display a link to individual microposts? (ruby on rails 3)谢谢 如果您需要更多信息,请告诉我
答案 0 :(得分:1)
要从列有@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>
答案 1 :(得分:0)
以下是我为使其工作而做的事情(借助以下stackoverflow帖子如何显示单个微博的链接?(ruby on rails 3))
路线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_controller文件
def show
@user = User.find_by_id(params[:id])
@listing = Listing.find_by_id(params[:id])
end