我在我的应用程序中使用设计邀请。我已经为一些自定义行为覆盖了设计邀请控制器。当我尝试为此编写控制器测试时,出现以下错误:
NoMethodError: undefined method 'name' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)
这样做时会发生这种情况get :new
。
按照设置方向的指示设置路线:
devise_for :users, controllers: { sessions: 'users/sessions', invitations: 'users/invitations', registrations: :registrations }
Run Code Online (Sandbox Code Playgroud)
控制器位于 /app/controllers/users/invitations_controller.rb 下,名称在Users::InvitationsController
与测试 /tests/controllers/users/invitations_controller.rb 相同的文件中正确间隔Users::InvitationsControllerTest
这是测试:
context '#new' do
context 'while not signed in' do
should 'redirect to the login page' do
get :new
assert_redirected_to new_user_session_path
end
end
end
Run Code Online (Sandbox Code Playgroud)
这是行动:
def new
self.resource = resource_class.new
self.resource.build_group if current_inviter.is_admin?
self.resource.group = current_inviter.group if current_inviter.is_manager?
render :new
end
Run Code Online (Sandbox Code Playgroud)
感谢任何帮助谢谢。
你好,我是Ruby On Rails的初学者.所以我在思考而不是制作任何视图文件我们不能在浏览器中显示任何字符串,在控制器的文件中写入" puts"任何东西吗?如果是,那么我试过一旦编写此代码
class OnecController < ApplicationController
def one
print "hello";
end
end
Run Code Online (Sandbox Code Playgroud)
但我能够得到输出!任何帮助???
我在我的显示操作中的帖子控制器中收到错误消息"错误的参数数量错误(1为0).我将评论该特定行的结尾.感谢您的帮助.
def show
@post = Post.all(:order => 'created_at DESC') #this is the error line
end
def new
@post = Post.new
end
def create
@post = Post.new(params[:post])
if @post.save
redirect_to @post
else
render :new
end
end
Run Code Online (Sandbox Code Playgroud)