Ruby on rails 滑轨4下拉框
我想通过此表单创建一个新任务。但是它说 无效的单表继承类型:hot不是Task的子类 这是我的密码。该问题必须与new.html.erb中的“f.select”相关Ruby on rails 滑轨4下拉框,ruby-on-rails,Ruby On Rails,我想通过此表单创建一个新任务。但是它说 无效的单表继承类型:hot不是Task的子类 这是我的密码。该问题必须与new.html.erb中的“f.select”相关 def new @task = Task.new end def create @task = Task.new(task_params) if @task.save # Handle a successful save. flash[:success] = "
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
<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>
和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
<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>
我认为问题在于“类型”。我不知道如何解决这个问题。我尝试了在Stackoverflow中能找到的一切,但我得到了同样的错误。请帮帮我。
提前感谢。如果您查看rails指南,您可以看到
type
是STI(单表继承)的保留列。您需要重命名列或告诉rails模型为STI使用不同的列。你可以在你的桌子是什么样子的?表中是否有类型列?