因此,我使用Basecamp總部(classic)API和Ruby Wrapper來設置Rails應用程序以批量添加和刪除待辦事項,里程碑和消息。Basecamp HQ API和Rails
現在,我有兩個控制器 - 項目和projectSummary(項目has_many projectsummaries,項目總結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
啊,不同的錯誤。我們正在移動。看到我上面的編輯。 – alexggordon
修改我的答案 – usha
所以現在我的頁面上出現「未定義的方法ID」錯誤。我不知道你是否有更多的想法,但我也在帖子中發佈了我的相關控制器代碼。 – alexggordon