2017-05-06 2 views
0
param is missing or the value is empty: story 

ich diese seltsame Fehler bekommen, wo ich die erforderliche param fehlt:param fehlt oder der Wert leer ist: Geschichte Schienen

class InvitesController < ApplicationController 
    def index 
    @invite = Invite.new 
    end 

    def create 
    @invite = Invite.new(invite_params) 
    @invite.sender_id = current_user.id 
end 

def invite_params 
    params.require(:story).permit(:title, :story, :body, :id, :user_id) 
end 

Ende

Im Fehlerbildschirm werden die Parameter eindeutig fest, dass story => "3":

{"utf8"=>"✓", "authenticity_token"=>"WDwu3UR/ZtAMKFVwJP4bb83BvdG+RBndP1wKBYT4t7V4BX2N/j/0Tl7VlJnHjObS7ahh2Qjw5oSwuKGyrUgWQw==", "invite"=>{"story"=>"3", "email"=>"[email protected]"}, "commit"=>"Send"} 


class Invite < ApplicationRecord 
    belongs_to :story 
    belongs_to :sender, :class_name => 'User' 
    belongs_to :recipient, :class_name => 'User' 
end 

create_table "invites", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t| 
    t.string "email" 
    t.integer "story_id" 
    t.integer "sender_id" 
    t.integer "recipient_id" 
    t.string "token" 
    t.boolean "accept" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    t.index ["story_id"], name: "index_invites_on_story_id", using: :btree 
end 

muss ich manuell die @invite.new mit th verlinken e require(:story), wenn ja, wie mache ich das?

Antwort

0

Ich habe das Attribut falsch verwendet.

Es sollte angenommen werden params.require(:invite).permit(:title, :story, :body, :id, :user_id). Die Klasse invite erfordert invite, im Gegensatz zu einer externen Geschichte.

Verwandte Themen