2013-12-17 1 views
0

Так что я использую API Basecamp HQ (classic) и Ruby Wrapper, чтобы настроить приложение Rails для массового добавления и удаления дел, этапов и сообщений.Basecamp HQ API и Rails

Прямо сейчас у меня есть два контроллера - проекты и projectSummary (проекты has_many projectsummaries и projectummary принадлежит к проекту), и я хочу сделать это, когда выбран идентификатор проекта, рельсы доставят вас на страницу, которая показывает элементы дел, этапы и сообщения.

Страница проектов работает нормально. Вся информация, которую я хочу загрузить о проекте, красноречиво обобщается, однако при попытке ссылки на другую страницу я очень не увенчался успехом.

Ошибка я получаю это

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> 

Любые идеи, что я могу сделать, чтобы это сработало?

Спасибо!

EDIT

Изменен <%= 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 

Edit 2

Controller Код

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_id и id для того, чтобы маршрут, чтобы работать должным образом

+0

Ahh, другая ошибка. Мы движемся. См. Мое редактирование выше. – alexggordon

+0

Изменен мой ответ – usha

+0

Итак, теперь я получаю ошибку «неопределенного метода» на моей странице. Я не знаю, есть ли у вас какие-либо идеи относительно этого, но я также разместил свой соответствующий код контроллера на этом посту. – alexggordon