Rails用param创建对象 - 没有require

时间:2016-04-29 22:29:08

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

我想用ajax调用控制器函数,工作正常,问题是对象生成。

我这样试试:

 @tag = Tag.new params[:tagname]
 @tag.save

但是我得到错误500回来了

如果我这样做

@tag = Tag.new params.permit[:tagname]
@tag.save

“有效”,但在数据库中,列标记名为Null ...

问题是什么?

我该怎么做才能解决这个问题?

3 个答案:

答案 0 :(得分:2)

如果我理解您在这里正确做了什么,那么您的问题就是您将字符串传递给Tag#new。但是,除非您修改了Tag类,否则实际上需要执行以下操作:

Tag.new name => params[:tagname]

即#34;新"没有字符串(再次,除非你已经修改过它),它需要一个哈希。

答案 1 :(得分:1)

正确的解决方案是

@tag = Tag.new
@tag.tagname = params[:tagname]

提示哈希问题的提示;)

答案 2 :(得分:1)

您可以使用create

在一个语句中执行此操作

Tag.create(tagname: params[:tagname])