Так что я использую 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
Ahh, другая ошибка. Мы движемся. См. Мое редактирование выше. – alexggordon
Изменен мой ответ – usha
Итак, теперь я получаю ошибку «неопределенного метода» на моей странице. Я не знаю, есть ли у вас какие-либо идеи относительно этого, но я также разместил свой соответствующий код контроллера на этом посту. – alexggordon