我想通过此表单创建一个新任务。但它说
无效的单表继承类型:hot不是Task的子类
这是我的代码。这个问题必须与" f.select"在new.html.erb
def new
@task = Task.new
end
def create
@task = Task.new(task_params)
if @task.save
# Handle a successful save.
flash[:success] = "Task accepted!"
redirect_to @task
else
render 'new'
end
end
private
def task_params
params.require(:task).permit(:type, :title, :details,:url)
end
和new.html.erb
<div class="row">
<div class="span6 offset3">
<%= form_for(@task) do |f| %>
<%= f.label :Select_Type %>
<%= f.select :type, [['Hot','hot'],['Medium','medium'],['Cold','cold']] %>
<%= f.label :Title %>
<%= f.text_field :title %>
<%= f.label :Details %>
<%= f.text_field :details %>
<%= f.label :Your_file_location %>
<%= f.text_field :url %>
<%= f.submit "Create a New Task", class: "btn, btn-large btn-primary" %>
<% end %>
</div>
</div>
我认为问题是&#34;键入&#34;。我不知道解决这个问题。我尝试了Stackoverflow中可以找到的所有内容,但是我得到了同样的错误。请帮我。 提前谢谢。
答案 0 :(得分:0)
如果查看rails guide Schema Convensions,可以看到type
是STI的保留列(单表继承)。您需要重命名列或告诉rails模型为STI使用不同的列。您可以在official docs