2013-12-17 96 views
0

因此,我使用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 

回答

0

應該

<td><%= link_to item.id, project_projectsummary_path(:project_id => @project.id, :id => @project.projectsummary.id) %></td> 

公告稱,其path而不是link

我在猜測項目has_one projectsummary。

project_projectsummary GET    /projects/:project_id/projectsummary/:id(.:format)      projectsummary#show 

你將不得不提供project_idid爲了使路由正常工作

+0

啊,不同的錯誤。我們正在移動。看到我上面的編輯。 – alexggordon

+0

修改我的答案 – usha

+0

所以現在我的頁面上出現「未定義的方法ID」錯誤。我不知道你是否有更多的想法,但我也在帖子中發佈了我的相關控制器代碼。 – alexggordon