2013-10-15 34 views
1

我想通过这个表单创建一个新的任务。但它说Rails4下拉框

无效的单表继承类型:热是不是任务

这里是我的代码的子类。这个问题必须是相关的 “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> 

我认为这个问题是 “类型”。我不知道要解决这个问题。我尝试了一切,我可以在Stackoverflow找到,但我得到了同样的错误。请帮帮我。 在此先感谢。

+0

找到更多关于STI的信息。你在表格中有一个类型列吗? –

回答

0

如果您查看导轨指南Schema Convensions,可以看到type是STI(单表继承)的保留列。您需要重新命名您的专栏或告诉导轨模型为STI使用不同的栏。你可以在official docs

+0

谢谢!问题通过更改列名来解决。 – Alex