2013-10-15 78 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