1

このフォームから新しいタスクを作成したいと考えています。しかし、それは言う

無効な単一テーブル継承タイプ: 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] = "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 で見つけられるものはすべて試しましたが、同じエラーが発生しました。私を助けてください。前もって感謝します。

4

1 に答える 1

0

Rails ガイドのSchema Convensionsを見るとtype、STI (Single table inheritance) 用に予約された列であることがわかります。列の名前を変更するか、Rails モデルに STI に別の列を使用するように指示する必要があります。STI の詳細については、公式ドキュメントを参照してください。

于 2013-10-15T16:53:25.367 に答える