首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Basecamp HQ和Rails

Basecamp HQ和Rails
EN

Stack Overflow用户
提问于 2013-12-17 18:35:13
回答 1查看 87关注 0票数 0

因此,我使用Basecamp HQ (古典主义) API和Ruby包装器来设置Rails应用程序,以大量添加和删除待办事项、里程碑和消息。

现在,我有两个控制器--项目和projectSummary (项目has_many项目摘要,以及项目摘要belongs_to项目),我想要这样做,所以当选择项目ID时,rails将带您到一个显示待办事项、里程碑和消息的页面。

项目页面工作得很好。所有的信息,我想加载的项目是美丽的总结,然而,当试图链接到另一个网页,我一直在继续非常不成功。

我所犯的错误是

代码语言:javascript
复制
NoMethodError in Projects#index
...
undefined method `project_projectsummary_link'

即使我的耙路回来了

代码语言:javascript
复制
                      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代码,我尝试链接到一个页面来显示项目摘要。

代码语言:javascript
复制
   <% @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目前

代码语言:javascript
复制
ApiTest::Application.routes.draw do
  resources :projects do
    resources :projectsummary
  end

编辑2

控制器码

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-17 18:37:32

它应该是

代码语言:javascript
复制
<td><%= link_to item.id, project_projectsummary_path(:project_id => @project.id, :id => @project.projectsummary.id) %></td>

注意它的path而不是link

我猜那个项目has_one项目摘要。

代码语言:javascript
复制
project_projectsummary GET    /projects/:project_id/projectsummary/:id(.:format)      projectsummary#show

您必须提供project_idid才能使路由正常工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20642044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档