3

このrailscastのように大量割り当てから保護することは、 Rails3.1では機能しなくなりました。

与えられたエラーは次のとおりです。

引数の数が間違っています(0の場合は1)

にとって

app/models/user.rb:20:in `mass_assignment_authorizer'
4

2 に答える 2

9

RyanのRailcastsでオーバーライド手法を実装しようとしているが、Rails 3.1.0を使用している場合は、モデルのプライベート定義を次のように書き直します。

def mass_assignment_authorizer(role = :default)
 super + (accessible || [])
end

私はこれがクリアされたことを発見しました

wrong number of arguments (1 for 0)

上記のエラー(つまり、(role =:default)を追加するだけで、上記の回答とも相関します

于 2011-11-09T20:14:43.020 に答える
0

ソースを見ると、少なくともマスターでは、ここに示すように、mass_assignment_authorizerのデフォルトオプション:defaultがあります。

どのバージョンのRails3.1を使用していますか?Gemfileを変更して、頭に対して試してみる価値があるかもしれません。

gem 'rails', :git => 'git@github.com:rails/rails.git'
于 2011-07-24T15:19:41.110 に答える