ActiveModel :: MissingAttributeError - rails

时间:2016-09-19 16:40:53

标签: ruby-on-rails ruby-on-rails-4

我的代码存在问题:

模型:

class UsefulPhrase < ActiveRecord::Base
   has_many :useful_phrase_contents
   accepts_nested_attributes_for :useful_phrase_contents
   validates_presence_of :key
end
class UsefulPhraseContent < ActiveRecord::Base
   belongs_to :useful_phrase
   attr_accessor :useful_phrase_id
   validates_presence_of :language, :content
end

控制器:

def new
  @useful_phrase = UsefulPhrase.new
  @available_languages = available_languages
  @useful_phrase.useful_phrase_contents.build
end

def create
  @useful_phrase = UsefulPhrase.new(useful_phrase_params)
  @useful_phrase.useful_phrase_contents.build(upc_params)

  respond_to do |format|
   if @useful_phrase.save
     format.html { redirect_to @useful_phrase, notice: 'bla-bla' }
     format.json { render :show, status: :created, location: @useful_phrase }
   else
     format.html { render :new }
     format.json { render json: @useful_phrase.errors, status: :unprocessable_entity }
   end
  end
end

def useful_phrase_params
   params.require(:useful_phrase).permit(:key)    
end


def upc_params
    params.require(:useful_phrase).require(:useful_phrase_content).permit(:language, :content)
end

当我尝试保存我得到的任何记录时:

  

/ useful_phrases中的ActiveModel :: MissingAttributeError       无法写出未知属性useful_phrase_id

我不知道如何修复它。

1 个答案:

答案 0 :(得分:0)

尝试在upc_params中编辑参数

params.require(:useful_phrase)       .permit(:language,content,:useful_phrase_content =&gt; [puttheattributefor use_ful_phrase_content])