Ruby on rails 3 rails应用程序故障排除的最佳步骤

Ruby on rails 3 rails应用程序故障排除的最佳步骤,ruby-on-rails-3,Ruby On Rails 3,通过MVC检查所有设置是否正确的最佳(最简单)方法是什么 我有点累了,我觉得必须有一个非常简单的方法来修复这些错误消息: undefined method `invitations_path' for #<#<Class:0x00000105ad5cb8>:0x00000105820b30> 您可以为每个控制器操作创建请求规范。从控制器到渲染视图,请求规范始终遵循该请求,如果出现错误,它将显示在请求规范中 这可能需要时间进行设置,但会在将来为您节省大量时间,因为当您想要

通过MVC检查所有设置是否正确的最佳(最简单)方法是什么

我有点累了,我觉得必须有一个非常简单的方法来修复这些错误消息:

undefined method `invitations_path' for #<#<Class:0x00000105ad5cb8>:0x00000105820b30>

您可以为每个控制器操作创建请求规范。从控制器到渲染视图,请求规范始终遵循该请求,如果出现错误,它将显示在请求规范中


这可能需要时间进行设置,但会在将来为您节省大量时间,因为当您想要推出新版本的网站时,您不必手动测试每个页面。

资源是否应该是复数的,例如,
:邀请函
?在任何情况下,
rake routes
通常是出现路由问题时首先开始的位置。嗯,我的控制器的名字是单数的(这是非传统的吗?),而且
rake routes
看起来不错:
invitation\u index GET/invitation(:format)invitation#index
POST/invitation(:格式)邀请#创建
资源通常是多元的,所以是的,这将被认为是非传统的。看看它是如何
邀请_路径
而不是
邀请_路径
?这是因为表单帮助程序正在尝试为帖子构建链接,至少这是我的第一个猜测。为了好玩,尝试在中创建脚手架“the Rails way”并查看工件名称:
Rails g scaffold post title:string
或其他任何内容。您可以从命令行删除生成的文件,或者只制作一个一次性测试应用程序。
<% if @user.invitation_limit > 0 %>
        <% link_to 'Send Invitations', new_invitation_path %> 
        (<%= @user.invitation_limit %> left)
<% end %>
<%= error_messages_for :invitation %>
<% form_for @invitation do |f| %>
  <p>
    <%= f.label :recipient_email, "Friend's email address" %><br />
    <%= f.text_field :recipient_email %>
  </p>
  <p><%= f.submit "Invite!" %></p>
<% end %>
class InvitationController < ApplicationController
  def new
    @invitation = Invitation.new
  end

def create
    @invitation = Invitation.new(params[:invitation])
    @invitation.sender = current_user
    if @invitation.save
      if logged_in?
        Mailer.deliver_invitation(@invitation, signup_url(@invitation.token))
        flash[:notice] = "Thank you, invitation sent."
        redirect_to projects_url
      else
        flash[:notice] = "Thank you, we will notify when we are ready."
        redirect_to root_url
      end
    else
      render :action => 'new'
    end
  end
end
class Invitation < ActiveRecord::Base
  belongs_to :sender, :class_name => 'User'
  has_one :recipient, :class_name => 'User'

  attr_accessible :recipient_email, :sender_id, :sent_at, :token
end
resources :home, :only => :index
resources :invitation