有两个参数,我正在得到一个这样的
v = (params.require(:service).permit(:title))
这个v有一个类似{"title"=>"test,kil"}
的值,我希望得到右边的值到一个字符串,但都是徒劳的。
我试图强加的概念我将@test= "test,kil"
任何帮助都会很棒。我是Rails的新手。
答案 0 :(得分:1)
params
只是一个哈希(很好)。
要在Ruby中访问哈希值,请使用方括号语法:
v = params.require(:service).permit(:title)
@test = v['title']
Rails中的Params是一种称为HashWithIndifferentAccess
的特殊哈希类型。我们可以同时执行v['title']
或v[:title]
。
答案 1 :(得分: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
我也用过创造!在方法中,如果要使用验证,则应考虑使用保存并检查返回值。如果存在验证问题,上述内容将引发错误。