当我尝试创建具有两个外键的模型UserLanguage的新记录时,我不断收到错误“ nil:NilClass的未定义方法'model_name'”。
提交表单后,新UserLangauge对象的language_id为nil。
user_languages#new视图
<%= simple_form_for(@user_language) do |f| %>
<%= f.association :language,label_method: :name,value_method: :id,include_blank: false,include_hidden: false %>
<%= f.input :proficiency,collection: @proficiencies,include_hidden: false %>
<%= f.submit "Add Language"%>
<% end %>
user_languages控制器
def new
@user_language = UserLanguage.new
...
end
def create
user_language = UserLanguage.new(user_language_params)
user_language.user = current_user
if user_language.save
redirect_to my_account_path
else
render :new
end
end
private
def user_language_params
params.require(:user_language).permit(:language,:proficiency,:seeking,:sharing)
end
我为用户分配了current_user(设备),但是无法获得与新的user_langauge记录关联的语言。...
我什至尝试在保存对象之前从from数据中手动分配@ user_language.language_id = params [:language],但是由于未知原因,langauge_id仅被分配了0。