【发布时间】:2014-07-11 08:47:34
【问题描述】:
我正在开发一个包含许多项目的网站。然后每个项目都有许多项目更新。每个特定项目的项目更新都显示在一个索引视图中,该视图从每个列出的项目更新链接到其单独的项目更新显示页面。
现在的问题是,在项目更新索引页面上,无论我单击哪个项目,都会将我带到第一个项目更新的显示视图。为什么它没有将我带到相应的项目更新显示视图?
我有一个这样的索引视图:
<%= provide(:title, 'All Project Updates') %>
<div class="row">
<div class="container">
</br>
<% @projectUpdates.each do |projectUpdate| %>
<div class="update-listing">
<div><%= projectUpdate.featured_image %></div>
<div><%= link_to projectUpdate.title, project_update_path %></div>
<div><%= projectUpdate.description %></div>
</br>
</br>
</div>
<% end %>
</div>
</div>
<% end %>
这是我的表演视图:
<%= provide(:title, @projectUpdate.project.npo.name+"Updates | "+@projectUpdate.project.name) %>
<br />
<div class="row">
<div class="small-12 columns">
<h1><%= @projectUpdate.project.npo.name+"Updates | "+@projectUpdate.project.name %></h1>
<hr />
</div>
<div class="small-12 medium-7 large-8 columns">
<div class="random-text">
<%= @projectUpdate.title %></br>
<%= @projectUpdate.description %></br>
<% if false %> <%= image_tag @projectUpdate.project_image %>
<%= link_to project_update_path(@projectUpdate) %><% end %>
</br>
</div>
<div>
<%= link_to "Back", :back, class:"btn btn-default return-project-button" %>
<% if can? :manage, @projectUpdate.project %>
<%= link_to 'Edit', edit_project_update_path(@projectUpdate), class:"btn btn-default edit-update-button" %>
<%= link_to 'Delete', @projectUpdate, class:"btn btn-default delete-update-button", method: :delete, data: { confirm: 'Are you sure?' } %>
</div>
</div>
</div>
<% end %>
这些是我的项目更新控制器中的索引和显示操作:
def index
@projectUpdates = ProjectUpdate.where(:project_id => params[:id])
respond_to do |format|
format.html
end
end
def show
@projectUpdate = ProjectUpdate.find(params[:id])
respond_to do |format|
format.html
end
end
理解代码的一些相关路径:
get 'all_project_updates/:id' => 'project_updates#index', as: 'all_project_updates'
resources :project_updates
resources :projects
我尝试过改变:
<div><%= link_to projectUpdate.title, project_update_path %></div>
到
<div><%= link_to projectUpdate.title, project_update_path(@projectUpdate) %></div>
但这导致了空白显示页面。
我对编程比较陌生,因此希望能提供一些简单的解释。
我认为我没有正确传递控制器中的参数来选择要显示的单个项目更新,但对此不确定。想法?
rake 路由输出:
Prefix Verb URI Pattern
Controller#Action
new_user_session GET /users/sign_in(.:format)
users/sessions#new
user_session POST /users/sign_in(.:format)
users/sessions#create
destroy_user_session DELETE /users/sign_out(.:format)
users/sessions#destroy
user_omniauth_authorize GET|POST /users/auth/:provider(.:format)
users/omniauth_callbacks#passthru {:provider=>/facebook/}
user_omniauth_callback GET|POST /users/auth/:action/callback(.:format
users/omniauth_callbacks#(?-mix:facebook)
user_password POST /users/password(.:format)
devise/passwords#create
new_user_password GET /users/password/new(.:format)
devise/passwords#new
edit_user_password GET /users/password/edit(.:format)
devise/passwords#edit
PATCH /users/password(.:format)
devise/passwords#update
PUT /users/password(.:format)
devise/passwords#update
cancel_user_registration GET /users/cancel(.:format)
users/registrations#cancel
user_registration POST /users(.:format)
users/registrations#create
new_user_registration GET /users/sign_up(.:format)
users/registrations#new
edit_user_registration GET /users/edit(.:format)
users/registrations#edit
PATCH /users(.:format)
users/registrations#update
PUT /users(.:format)
users/registrations#update
DELETE /users(.:format)
users/registrations#destroy
user_confirmation POST /users/confirmation(.:format)
devise/confirmations#create
new_user_confirmation GET /users/confirmation/new(.:format)
devise/confirmations#new
GET /users/confirmation(.:format)
devise/confirmations#show
root GET /
pages#home
login_any_user POST /login_any_user(.:format)
users#login_redirect
user_dashboard GET /users/:id/user_dashboard(.:format)
users#user_dashboard
user_settings GET /users/:id/settings(.:format)
users#settings
reactivate_user_page GET /users/:id/reactivate(.:format)
users#reactivate
reactivate_user POST /users/:id/reactivate(.:format)
users#reactivate_user
new_transaction POST /transactions/new/:id(.:format)
transactions#new
npo_dashboard GET /npos/:id/npo_dashboard(.:format)
npos#npo_dashboard
my_projects GET /npos/:id/my_projects(.:format)
projects#manage_projects
admin_dashboard GET /admin_dashboard(.:format)
users#admin_dashboard
about GET /about(.:format)
pages#about
howitworks GET /howitworks(.:format)
pages#howitworks
contact GET /contact(.:format)
pages#contact
sponsor GET /sponsor(.:format)
pages#sponsor
deals GET /deals(.:format)
pages#deals
refund GET /refund(.:format)
transactions#refund
all_project_updates GET /all_project_updates/:id(.:format)
project_updates#index
pages GET /pages(.:format)
pages#index
POST /pages(.:format)
pages#create
new_page GET /pages/new(.:format)
pages#new
edit_page GET /pages/:id/edit(.:format)
pages#edit
page GET /pages/:id(.:format)
pages#show
PATCH /pages/:id(.:format)
pages#update
PUT /pages/:id(.:format)
pages#update
DELETE /pages/:id(.:format)
pages#destroy
projects GET /projects(.:format)
projects#index
POST /projects(.:format)
projects#create
new_project GET /projects/new(.:format)
projects#new
edit_project GET /projects/:id/edit(.:format)
projects#edit
project GET /projects/:id(.:format)
projects#show
PATCH /projects/:id(.:format)
projects#update
PUT /projects/:id(.:format)
projects#update
DELETE /projects/:id(.:format)
projects#destroy
npos GET /npos(.:format)
npos#index
POST /npos(.:format)
npos#create
new_npo GET /npos/new(.:format)
npos#new
edit_npo GET /npos/:id/edit(.:format)
npos#edit
npo GET /npos/:id(.:format)
npos#show
PATCH /npos/:id(.:format)
npos#update
PUT /npos/:id(.:format)
npos#update
DELETE /npos/:id(.:format)
npos#destroy
transactions GET /transactions(.:format)
transactions#index
POST /transactions(.:format)
transactions#create
GET /transactions/new(.:format)
transactions#new
edit_transaction GET /transactions/:id/edit(.:format)
transactions#edit
transaction GET /transactions/:id(.:format)
transactions#show
PATCH /transactions/:id(.:format)
transactions#update
PUT /transactions/:id(.:format)
transactions#update
DELETE /transactions/:id(.:format)
transactions#destroy
users GET /users(.:format)
users#index
POST /users(.:format)
users#create
new_user GET /users/new(.:format)
users#new
edit_user GET /users/:id/edit(.:format)
users#edit
user GET /users/:id(.:format)
users#show
PATCH /users/:id(.:format)
users#update
PUT /users/:id(.:format)
users#update
DELETE /users/:id(.:format)
users#destroy
categories GET /categories(.:format)
categories#index
POST /categories(.:format)
categories#create
new_category GET /categories/new(.:format)
categories#new
edit_category GET /categories/:id/edit(.:format)
categories#edit
category GET /categories/:id(.:format)
categories#show
PATCH /categories/:id(.:format)
categories#update
PUT /categories/:id(.:format)
categories#update
DELETE /categories/:id(.:format)
categories#destroy
project_updates GET /project_updates(.:format)
project_updates#index
POST /project_updates(.:format)
project_updates#create
new_project_update GET /project_updates/new(.:format)
project_updates#new
edit_project_update GET /project_updates/:id/edit(.:format)
project_updates#edit
project_update GET /project_updates/:id(.:format)
project_updates#show
PATCH /project_updates/:id(.:format)
project_updates#update
PUT /project_updates/:id(.:format)
project_updates#update
DELETE /project_updates/:id(.:format)
project_updates#destroy
s3_create POST /s3/upload(.:format)
media_files#s3_create
s3_delete DELETE /s3/delete/:id(.:format)
media_files#s3_delete
create_or_update_avatar_from_s3 POST /s3/avatar(.:format)
media_files#create_or_update_avatar_from_s3
delete_avatar_from_s3 DELETE /s3/avatar/:id(.:format)
media_files#delete_avatar_from_s3
【问题讨论】:
-
试试这个
<%= link_to projectUpdate.title, project_update_path(projectUpdate) %> -
感谢工作!你能解释一下为什么吗?如果可能的话,我想了解实际发生的情况
标签: ruby-on-rails ruby model-view-controller ruby-on-rails-4 routing