Ruby on rails 在控制器中创建普通的旧ruby对象时出现问题
我正在尝试建立一个梦幻足球网站,允许用户输入他们的联赛设置,并接收可用球员的推荐。我已经创建了一个普通的ruby对象“草稿”,它具有挑选最佳玩家的逻辑。我试图根据每个访问者输入的设置为他们创建一个新的草稿,但我不知道如何让控制器创建一个具有唯一设置的新ruby实例 我正在尝试为草稿对象呈现一个表单,以便在用户选择草稿设置后,草稿将开始并显示建议 我已将根设置为#new,以便可以创建新的草稿。我试图呈现表单,但控制器抛出错误:“param丢失或值为空:draft” 以下是我的控制器的外观:Ruby on rails 在控制器中创建普通的旧ruby对象时出现问题,ruby-on-rails,ruby,controller,Ruby On Rails,Ruby,Controller,我正在尝试建立一个梦幻足球网站,允许用户输入他们的联赛设置,并接收可用球员的推荐。我已经创建了一个普通的ruby对象“草稿”,它具有挑选最佳玩家的逻辑。我试图根据每个访问者输入的设置为他们创建一个新的草稿,但我不知道如何让控制器创建一个具有唯一设置的新ruby实例 我正在尝试为草稿对象呈现一个表单,以便在用户选择草稿设置后,草稿将开始并显示建议 我已将根设置为#new,以便可以创建新的草稿。我试图呈现表单,但控制器抛出错误:“param丢失或值为空:draft” 以下是我的控制器的外观: def
def new
@draft = Draft.new(draft_params)
end
private
def draft_params
params.require(:draft).permit(:draft_type, :number_of_teams)
end
参数以以下形式正确链接:
<%= form_for(@draft) do |f| %>
<div class="form-group">
<%= f.label :draft_type %>
<%= f.text_field :draft_type, :class => 'form-control' %>
</div>
<div class="form-group">
<%= f.label :number_of_teams %>
<%= f.number_field , :class => 'form-control', %>
</div>
<%= f.submit :class => 'btn btn-info' %>
<% end %>
'窗体控件'%>
“表单控件”,%%>
“btn btn信息”%>
我怎样才能使我的新草稿正确地显示出来?
请帮我找出我做错了什么
如果您想了解更多信息,请参阅github回购协议:
您需要
draft
参数,但它不是表单中的参数(仅draft\u type
文本字段和number\u团队
number字段是)。为draft
参数添加另一个表单控件,或者不需要它。(或者,我想,从会话或其他方式注入它。)
编辑:查看您的github代码
def initialize(number_of_teams, draft_type)
您的模型仅包含两个参数;为什么
。需要(:草稿)
?非常感谢您的评论!我添加了require草稿,因为我只是在模仿别人在我发现的一个示例中所做的事情。我取消了要求,现在才拿到许可证。不幸的是,它现在给出了错误:“SyntaxError位于/或'['或'.”非常感谢您的回复。我将继续尝试解决这个问题。当然form_for
方法会在参数中创建draft
键吗?或者可能我因为没有使用ActiveRecord模型而感到困惑有趣-我以前从未做过非ActiveRecord模型。我很想听听你是怎么做的你如何在各州之间持久化草案
数据?