我有以下控制器操作
def create
@user= user.new(user_params)
...
end
private
def user_params
params.require(:user).permit(:username, :device)
end
用户模型持有设备表的外键
class user < ActiveRecord::Base
belongs_to :device
end
设备也具有has_many
属性。
当我尝试使用表单详细信息创建新用户时
user[username] = 'test'
和user[device] = 1
我收到类型错误ActiveRecord::AssociationTypeMismatch Device(#37560060) expected, got String(#15955200)
答案 0 :(得分:1)
在新用户模板中使用form_for
并将新的@user
对象传递给它,并定义输入属性,如下所示
<%= form_for @user, create_user_path do |f| %>
<%= f.text_field :username %>
<%= f.text_field :device_id %>
<%= f.submit %>
<% end %>
并将强参数:device
更改为:device_id
,因为pragma告诉上面
答案 1 :(得分:0)
更改&#39;设备&#39;到&#39; device_id&#39;
def user_params
params.require(:user).permit(:username, :device_id)
end
...
user[device_id] = 1