2016-07-15 75 views
0

我有一个用户模型,在Devise下工作时没有问题(使用devise sanitizer来更新字段,所以没有UsersController) 我正在创建一个Quiz模型,它属于用户模型和用户模型has_one测验。在我的路线中,我有:资源:用户,:测验(这应该是测验或测验?我知道Rails复数,但似乎无法找到它在这种情况下)。在Rails 4+中将两个模型关联在一起

在我看来,我试图打开一个模式(工作),并在里面填充了用户可以输入他们想要的问题(q1到q5是数据库字段)的字段。 里面的模式内容区域,我的代码:

<%= form_for @quiz, url: {action: "new"} do |f| %> 
<%= f.submit "Create" %> 
<% end %> 

,我得到错误“的形式第一个参数不能包含零或为空”

在我的测验控制器,我已经定义了新的一样

def new 
@quiz = Quiz.new 
end 

我非常感谢这里的一些帮助!谢谢。

+0

您是否尝试在rails控制台上运行Quiz.new,它的输出是什么? – power

+0

@power <测验ID:无,Q1:无,Q2:无,Q3:无,Q4:无,Q5:无,已创建:无,updated_at:无 – helpisgood

+0

也正在使用的模式放在应用程序内/view/quizzes/new.html.erb,或者你在new.html.erb中渲染你的模态? – power

回答

2

在你WelcomeController行动:index加入这一行初始化@quiz

def index 
    @quiz = Quiz.new 
end 

希望你做你的项目进展良好。

1

shoudn't它像下面

<%= form_for @quiz do |f| %> 
    <%= f.submit "Create" %> 
<% end %> 
+0

给出相同的错误。 – helpisgood