走过MVC并检查一切是否设置正确的最佳(最简单)方法是什么?
我有点疲惫,我觉得必须有一个真的简单修复错误消息,如:
undefined method `invitations_path' for #<#<Class:0x00000105ad5cb8>:0x00000105820b30>
在我的应用程序中添加少量代码后,事情就会中断,我想自己麻烦地拍摄它们。
感谢您的提示!
修改
对特定问题进行故障排除可能会导致采用通用方法,
查看(在home / index.erb.html中)
<% if @user.invitation_limit > 0 %>
<% link_to 'Send Invitations', new_invitation_path %>
(<%= @user.invitation_limit %> left)
<% end %>
查看(在邀请函/ new.erb.html中)
<%= 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
的routes.rb
resources :home, :only => :index
resources :invitation
答案 0 :(得分:0)
您可以为每个控制器操作创建请求规范。请求规范一直遵循从控制器到渲染视图的请求,如果有错误,它将显示在请求规范中。
这可能需要一段时间才能设置,但将来会为您节省大量时间,因为当您想要推出新版本的网站时,您不必手动测试每个页面。