0

私はRails 4 APIに取り組んでおり、クライアントがデータをコントローラーに投稿でき、データベースに保存されます。ネストされた JSON を POST するようにユーザーを実装し、コントローラーに属性を受け入れて、それらを使用してモデルを作成する方法を考えていました。JSONは次のようになります

{
  'identifier': {
    'name': 'Test'
  }
}

次に、私が持っているプラ​​イベートメソッドで

def parameters
    params.respond_to?(:permit) ?
        params.require(:picture).permit(:identifier) :
        params[:picture].slice(:identifier) rescue nil
  end

そして、コントローラーの「名前」パラメーターにアクセスしようとすると、parameters[:identifier][:name]未定義のメソッド [] が表示されます。助言がありますか?

アクションを作成

@picture = current_user.pictures.new(name: parameters[:identifier][:name])

写真モデルのみt.string :name

4

2 に答える 2

1

JSON には文字列がキーとして含まれているように見え'identifier'ますが、シンボルを使用してアクセスしようとすると:identifier、 が返されますnil。So[]は で定義されていませんnil。おそらくそうするべきですparameters["identifier"]["name"]

于 2013-07-28T18:42:26.333 に答える
1

次のような許可されたパラメーターで作成する限り、ネストされた JSON を使用できます。

  def parameters
    params.respond_to?(:permit) ?
        params.require(:picture).permit(:identifier => [ :name ]) :
        params[:picture].slice(:identifier => [ :name ]) rescue nil
  end

これは、強力なパラメーターを使用してRails 4で機能します

于 2013-07-29T00:22:48.050 に答える