【问题标题】:Associating two models together in Rails 4+在 Rails 4+ 中将两个模型关联在一起
【发布时间】:2016-07-15 06:05:59
【问题描述】:

我有一个在 Devise 下正常工作的 User 模型(使用 devise sanitizer 更新字段,所以没有 UsersController) 我正在创建一个 Quiz 模型,它属于 User 模型,而 User 模型 has_one Quiz。在我的路线中,我有:resources :users, :quizzes(这应该是 quizzes 还是 quizs?我知道 Rails 是复数形式,但在这种情况下似乎找不到它的含义)。

在我看来,我正在尝试打开一个模式(有效)并在其中填充用户可以在他们想要的问题中输入的字段(q1 到 q5 是数据库字段)。 在模态内容区域内,我有代码:

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

我收到错误“表单中的第一个参数不能包含 nil 或为空”

在我的测验控制器中,我将 new 定义为

def new
@quiz = Quiz.new
end

我将非常感谢您的帮助!谢谢。

【问题讨论】:

  • 你试过在 Rails 控制台上运行 Quiz.new 吗?它的输出是什么?
  • @power
  • 您正在使用的模态也被放置在 app/view/quizzes/new.html.erb 中,或者您在 new.html.erb 中呈现您的模态?
  • @power 在视图下,我有一个名为“Welcome”的文件夹,里面是landing.html.erb,我有我的所有代码(除了HTML之外的东西是当前用户数据的一些列表)
  • 然后在索引中定义它@quiz = Quiz.new

标签: ruby-on-rails ruby devise associations models


【解决方案1】:

在您的WelcomeController 操作中:index 将此行添加到初始化的@quiz

def index 
  @quiz = Quiz.new
end

希望您在项目中取得良好进展。

【讨论】:

    【解决方案2】:

    不应该像跟随

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

    【讨论】:

      猜你喜欢
      • 2016-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 2010-10-15
      相关资源
      最近更新 更多