因此,我使用Basecamp HQ (古典主义) API和Ruby包装器来设置Rails应用程序,以大量添加和删除待办事项、里程碑和消息。
现在,我有两个控制器--项目和projectSummary (项目has_many项目摘要,以及项目摘要belongs_to项目),我想要这样做,所以当选择项目ID时,rails将带您到一个显示待办事项、里程碑和消息的页面。
项目页面工作得很好。所有的信息,我想加载的项目是美丽的总结,然而,当试图链接到另一个网页,我一直在继续非常不成功。
我所犯的错误是
NoMethodError in Projects#index
...
undefined method `project_projectsummary_link'即使我的耙路回来了
Prefix Verb URI Pattern Controller#Action
project_projectsummary_index GET /projects/:project_id/projectsummary(.:format) projectsummary#index
POST /projects/:project_id/projectsummary(.:format) projectsummary#create
new_project_projectsummary GET /projects/:project_id/projectsummary/new(.:format) projectsummary#new
edit_project_projectsummary GET /projects/:project_id/projectsummary/:id/edit(.:format) projectsummary#edit
project_projectsummary GET /projects/:project_id/projectsummary/:id(.:format) projectsummary#show
PATCH /projects/:project_id/projectsummary/:id(.:format) projectsummary#update
PUT /projects/:project_id/projectsummary/:id(.:format) projectsummary#update
DELETE /projects/:project_id/projectsummary/:id(.:format) projectsummary#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目前,这是我的index.html.erb代码,我尝试链接到一个页面来显示项目摘要。
<% @project.each do |item| %>
<tr>
<td><%= item.name %></td>
<td><%= link_to item.id, project_projectsummary_link(@project) %></td>
<td><%= item.last_changed_on %></td>
<td><%= item.created_on %></td>
<td><%= item.status %></td>我能做些什么让这件事起作用吗?
谢谢!
编辑
改为<%= link_to item.id, project_projectsummary_path(@project) %>
现在,它返回一个带有错误的URL生成错误
No route matches {:action=>"show", :controller=>"projectsummary", :project_id=>#<...
我的Routes.rb目前
ApiTest::Application.routes.draw do
resources :projects do
resources :projectsummary
end编辑2
控制器码
class ProjectsController < ApplicationController
before_action :set_project, only: [:show, :edit, :update, :destroy]
before_filter :basecamp_connect
helper_method :sort_column, :sort_direction
def index
@project = Basecamp::Project.find(:all)
end
def list
@projects = @basecamp.projects.find(:all)
end
def show
end发布于 2013-12-17 18:37:32
它应该是
<td><%= link_to item.id, project_projectsummary_path(:project_id => @project.id, :id => @project.projectsummary.id) %></td>注意它的path而不是link。
我猜那个项目has_one项目摘要。
project_projectsummary GET /projects/:project_id/projectsummary/:id(.:format) projectsummary#show您必须提供project_id和id才能使路由正常工作。
https://stackoverflow.com/questions/20642044
复制相似问题