3

Rails 4 が強力なパラメーターを処理する方法はおかしいようです。

def UsersController < ActionController::Base
  def update
    @user = current_user

    if @user.update_attributes(user_profile_parameters)
      redirect_to home_path, notice:  "Your profile has been successfully updated."
    else
      render action: "edit"
    end
  end

  private
  def user_profile_parameters
    params.require(:user).permit(:name, :password, :password_confirmation, :email)
  end
end

Rails 3ではできないのだろうか?はい、1 行だけではなく、おそらく 3 行かかるでしょう。しかし、そこに新しいものは何もありません。これは、許可されたパラメーターの手動で作成されたリストにすぎません。実際、これは単なるハッシュですよね? それとも、もっと深い目的があるのでしょうか?

4

3 に答える 3

3

Rails 3ではできないのだろうか?

はい、この gemを使用して、Rails 3 で強力なパラメーターを使用できます。

それはただのハッシュですね。

はい、パラメータは単なるハッシュです。

それとも、もっと深い目的があるのでしょうか?

あなたが言いたいのは、同じことをするためにもっと多くのコードを書かなければならないということだと思います。基本的な作業を行っている場合はそのように見えるかもしれませんが、承認をカスタマイズして物事をもう少し動的にするようになると、事態は複雑になります。

1 つの問題は、attr_accessible柔軟性があまりないことです。強力なパラメーターはそれを修正します。強力なパラメーターは、意識を高め、データをより細かく制御できるようにする方法だと思います。レコードが作成されるデータに関するドキュメントを提供する方法。

わかる?

于 2013-08-09T20:35:28.587 に答える