2017-05-03 32 views
0

我有以下錯誤:未知屬性「gradework」的反饋

"tribute 'gradework' for Feedback."

在鏈接是Rails控制檯的屏幕和發送的參數是:

"{" feedback "=> {" anotations "=>" Holiiii "," score "=>" 12 " 1 "," user "=>" # <User: 0x007f4674123f38> "}}" 

錯誤圖片:

Error Image

feedback.rb

class CreateFeedbacks < ActiveRecord::Migration[5.0] 
    def change 
    create_table :feedbacks do |t| 
     t.text :anotations 
     t.integer :score 
     t.references :gradework, foreign_key: true 
     t.references :user, foreign_key: true 
     t.timestamps 
    end 
    end 
end 

schema.rb

create_table "feedbacks", force: :cascade do |t| 
    t.text  "anotations" 
    t.integer "score" 
    t.integer "gradework_id" 
    t.integer "user_id" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    t.index ["gradework_id"], name: "index_feedbacks_on_gradework_id", using: :btree 
    t.index ["user_id"], name: "index_feedbacks_on_user_id", using: :btree 
    end 

create_table "gradeworks", force: :cascade do |t| 
    t.string "name" 
    t.text  "description" 
    t.string "status" 
    t.date  "delivery_date" 
    t.date  "begin_date" 
    t.time  "hour" 
    t.text  "locale" 
    t.string "semester" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    t.string "file" 
    end 

feedbackController:

def create 
    @feedback = Feedback.new(feedback_params) 
    respond_to do |format| 
     if @feedback.save! 
     format.html { redirect_to @feedback, notice: 'Feedback was successfully created.' } 
     format.json { render :show, status: :created, location: @feedback } 
     else 
     format.html { render :new, notice: 'Feedback was not created.' } 
     format.json { render json: @feedback.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

def feedback_params 
     params.require(:feedback).permit(:anotations, :score, :gradework, :user) 
    end 

觀點:

<form role="form" id="newForm" action="/feedbacks" method="post"> 

     <div class="form-group">   
      Comentario:<br> 
      <textarea type="text" rows="5" class="form-control" 
      id="inputAnotations" placeholder="Ingrese su comentario"             name="feedback[anotations]" required></textarea> 
     <br><br> 
     </div> 
     <div class="form-group"> 
       Score:<br> 
       <input type="number" class="form-control" name="feedback[score]"> 
    </div> 
    <div class="form-group"> 
      <label for="gradework">Tesis:</label> 
      <%= select_tag(:gradework, options_from_collection_for_select(@grad_jury ,:id, :name), :prompt => "Ninguno", class: "form-control", name: "feedback[gradework]") %> 
    </div> 
    <div class="form-group"> 
      <%#User:<br>%> 
      <input type="hidden" class="form-control" name="feedback[user]" value= <%= @cUser %>> 
    </div> 

     <br><br> 
    <button type="submit" class="btn btn-default" data-dismiss="">Agregar</button> 
    <!-- <input type="submit" value="Agregar"> --> 
</form> 

我不知道什麼是錯的!

+0

嘗試在視圖中設置'gradework'而不是'gradework_id'。你能分享你的看法嗎('new.html.erb')? – Gerry

+0

現在添加視圖,這是查詢 「def self.users_gradework(id) joins(:users).select(」gradeworks.id,gradeworks.name,gradeworks.description「) .where({users:{ id:id}}) end「 –

+0

關係是」has_and_belongs_to_many:gradeworks「 –

回答

0

這個問題似乎是在這裏:

<%= select_tag(:gradework, options_from_collection_for_select(@grad_jury ,:id, :name), :prompt => "Ninguno", class: "form-control", name: "feedback[gradework]") %> 

您的形式發送gradework屬性,是不是在你的模型(Feedback) ,所以你需要發送gradework_id來代替,所以請嘗試將上述行改爲:

<%= select_tag(:gradework_id, options_from_collection_for_select(@grad_jury ,:id, :name), :prompt => "Ninguno", class: "form-control", name: "feedback[gradework_id]") %> 

這會發送gradework_id作爲參數,無論在select中選擇了什麼值。

+0

按gradework_id更改成績,但錯誤仍在繼續。 –

+0

@SebastianMoralesGarzón在你的錯誤屏幕上,你現在得到什麼**參數:**? – Gerry

+0

如果是再加上一個細節,非常感謝 –

0

你應該有2兩件事情從你的觀點反饋詞條沿創建gradework項:

  1. belongs_to :gradeworkFeedback模型。
  2. 形式的名稱應爲feedback[gradework_attributes],而不是feedback[gradework]
+0

當我更改關係時,出現以下錯誤」Gradework(#69970235955560)「,得到String(#15868000)」。 –