【问题标题】:Rails HashWithIndifferentAccess - errorRails HashWithIndifferentAccess - 错误
【发布时间】:2013-02-28 18:20:11
【问题描述】:

我正在保存这样的哈希会话:

 session[:review] = {:content => params[:review], :rating => params[:rating], :school_id => params[:school_id]} 

当我像这样将它保存到数据库时:

Review.create!(:content => session[:review][:content], :school_id => session[:review][:school_id], :user_id => current_user, :rating => session[:review][:rating])

它将值保存到这样的一列中:

--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess
rating: '1'
content: somehting skjnfjkbf

为什么以及如何解决这个问题?

【问题讨论】:

  • 究竟是什么问题?是否在数据库中创建记录? one column 是什么意思??
  • 是的,它会将其保存到数据库中,但我有这样的表:review{id, content, rating, school_id, user_id} 它使用这种形式保存所有内容:--- !ruby/hash: ActiveSupport::HashWithIndifferentAccess rating: '1' content: somehting skjnfjkbf into the content column.
  • 你能粘贴Review.lastReview.last.content的值吗??
  • params[:review] 上有什么内容?看起来 params[:review] 是一个访问无关紧要的哈希,您将其分配给“内容”,然后 rails 序列化哈希并将其保存到数据库中,您应该尝试调试您分配给的每个值中的内容创建之前的评论对象(我猜你的评分例如不在 params[:rating],它是 params[:review][:rating],内容是 params[:review][:content])你应该发布表单的代码太
  • codeit - 它返回一个字符串,arieljuod 在这里检查我的问题:stackoverflow.com/questions/15072189/…

标签: ruby-on-rails ruby ruby-on-rails-3


【解决方案1】:

嗯。我不确定错误是如何产生的。

但是,下面的代码应该可以解决您的问题。

Review.create!(session[:review].merge(user_id: current_user))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-01
    • 1970-01-01
    • 2010-12-10
    • 1970-01-01
    • 1970-01-01
    • 2019-11-04
    • 1970-01-01
    相关资源
    最近更新 更多