10

「attr_accessible」が削除されたため、Rails 4で仮想属性(ゲッター、セッター)を使用するにはどうすればよいですか。

ここで問題が発生しています

  def tags_list
    @tags = self.tags.collect(&:name).join(', ')
  end

更新/作成しようとすると、上記のメソッドに到達できますが、以下のセッターに到達できません。

  def tags_list=(tags)
    @tags = tags
  end
4

1 に答える 1

13

Rails 4 での仮想属性の使用は、attr_accessible とほとんど同じです。(attr_accessible の代わりに) コントローラーで許可されたパラメーターに仮想属性を追加し、通常どおりモデルにゲッター メソッドとセッター メソッドを追加するだけです。

# your_controller.rb
private

def your_model_params
  params.require(:your_model_name).permit(:tags_list)
end
于 2013-07-03T22:47:59.397 に答える