Rails - ActionController :: String的参数

时间:2015-07-12 07:51:39

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

有两个参数,我正在得到一个这样的

v = (params.require(:service).permit(:title))

这个v有一个类似{"title"=>"test,kil"}的值,我希望得到右边的值到一个字符串,但都是徒劳的。 我试图强加的概念我将@test= "test,kil"

任何帮助都会很棒。我是Rails的新手。

2 个答案:

答案 0 :(得分:1)

Rails中的

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

我也用过创造!在方法中,如果要使用验证,则应考虑使用保存并检查返回值。如果存在验证问题,上述内容将引发错误。