ruby-on-rails - 这是通过 Controller 进行质量分配的安全方法吗?

标签 ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1

出于安全原因,我决定采用不同的方法进行批量分配,并想知道这是否是在 Controller 内部执行此操作的安全方法?

QuestionsController

def new
  @survey = Survey.find(params[:survey_id])
  @question = Question.new
end

def create
  @survey = Survey.find(params[:survey_id])
  @question = @survey.questions.new
  @question.title = params[:question][:title]
  @question.description = params[:question][:description]


  if @question.save
    redirect_to new_survey_question_path
  else
    render :new
  end
end

他们可以更改 survey_idquestion 的任何其他列吗?除了使用 attr_accessible 之外,他们是更好的方法吗?

最佳答案

好的,你可以做类似的事情......

enabled_attributes = [:title, :description]
params[:question].delete_if {|k, v| !enabled_attributes.include?(k) }
@question = @survey.questions.new(params[:question])

这将从 params[:question] 散列中删除所有不在启用数组中的属性。

关于ruby-on-rails - 这是通过 Controller 进行质量分配的安全方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11250735/

相关文章:

ruby-on-rails - Bundler - 更新特定组中的 gems

ruby-on-rails - 如何清空/销毁 Rails 中的 session ?

ruby - Ruby EventMachine和多播

ruby-on-rails - rake 错误:warning: already initialized constant MAJOR

ruby-on-rails - Rails 引擎中的助手

ruby-on-rails - 使用 Cucumber 验证错误

ruby-on-rails - 我如何在 ReactJS 中使用嵌套表单?

ruby - 在 Ruby 中解析大文件的最快方法

ruby - Ruby 中是否有标准方法将字符串添加到每个字符串数组中?

ruby-on-rails - 如何从重定向的 url 中获取引用