for_tag有两个属性,1::level_id
2::title
。
用户输入的值均为:title
,输入值为
数学,英语,ETC 并将其拆分为数组
@test = params.requrie(:service).permit(:title)[:title]
我需要使用相同的:level_id
title:math,level_id:1
title:English,level_id:1
在我的服务控制器中尝试此操作。
def create
@qure = params.require(:service).permit(:level_id)[:level_id]
@test = params.require(:service).permit(:title)[:title]
@gain = @test.split(",")
@gain.each do |fil|
Service.new(fil,@qure)
end
redirect_to root_url
end
这给了我一个错误
分配属性时,必须将哈希作为参数传递。
我的迁移
def change
create_table :services do |t|
t.string :title
t.integer :level_id
t.timestamps null: false
end
end
答案 0 :(得分:0)
您可以执行以下操作:
@test = params.require(:service).permit(:title)[:title]
def create
@qure = params.require(:service).permit(:level_id)[:level_id]
@test = params.require(:service).permit(:title)[:title]
@gain = @test.split(",")
# Note: You need to use a hash to pass args to the model
@gain.each do |fil|
Service.create!(title: fil, level_id: @qure)
end
redirect_to root_url
end
我也用过创造!在方法中,如果要使用验证,则应考虑使用保存并检查返回值。如果存在验证问题,上述内容将引发错误。