Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 Rails 4中双嵌套模型的不允许参数_Ruby On Rails 4_Strong Parameters - Fatal编程技术网

Ruby on rails 4 Rails 4中双嵌套模型的不允许参数

Ruby on rails 4 Rails 4中双嵌套模型的不允许参数,ruby-on-rails-4,strong-parameters,Ruby On Rails 4,Strong Parameters,我是Rails新手,并基于此构建了一些东西,但它需要一些小的更新才能与Rails 4的强大参数兼容: 我在这里根据类似帖子列出了调查参数、问题和答案: 我检查了数据库,但数据不在那里,在日志中发现了错误。第一组嵌套数据(问题)在那里并起作用,只有第二组不起作用。我也有:身份证在那里,人们说你也需要 据我所知,每个父级都需要将其要修改的直接嵌套属性列为白名单。我使用了完全相同的代码来解决问题,但是答案并没有被列入白名单,即使我已经在问题中这样做了 欢迎指点。我似乎找不到任何双重嵌套的示例 更新

我是Rails新手,并基于此构建了一些东西,但它需要一些小的更新才能与Rails 4的强大参数兼容:

我在这里根据类似帖子列出了调查参数、问题和答案:

我检查了数据库,但数据不在那里,在日志中发现了错误。第一组嵌套数据(问题)在那里并起作用,只有第二组不起作用。我也有:身份证在那里,人们说你也需要

据我所知,每个父级都需要将其要修改的直接嵌套属性列为白名单。我使用了完全相同的代码来解决问题,但是答案并没有被列入白名单,即使我已经在问题中这样做了

欢迎指点。我似乎找不到任何双重嵌套的示例

更新:我通过反复试验解决了这个问题。


我发现解决办法是白名单需要匹配属性的嵌套。因此,为了解决上述问题,我更改了以下内容:

class SurveysController < ApplicationController
  def survey_params
    params.require(:survey).permit(:name, questions_attributes: [:id, :survey_id,    :content])
  end
class SurveysController < ApplicationController
  def survey_params
    params.require(:survey).permit(:name, questions_attributes: [:id, :survey_id,    :content])
  end
class SurveysController
为此:

class SurveysController < ApplicationController
  def survey_params
    params.require(:survey).permit(:name, questions_attributes: [:id, :survey_id,    :content, answers_attributes: [:id, :question_id, :content]])
  end
class SurveysController < ApplicationController
  def survey_params
    params.require(:survey).permit(:name, questions_attributes: [:id, :survey_id,    :content, answers_attributes: [:id, :question_id, :content]])
  end
class SurveysController

例如,只需复制答案属性的白名单,并在问题属性的结束“]”之前插入白名单。

我发现解决办法是白名单需要与属性嵌套匹配。因此,为了解决上述问题,我更改了以下内容:

class SurveysController < ApplicationController
  def survey_params
    params.require(:survey).permit(:name, questions_attributes: [:id, :survey_id,    :content])
  end
class SurveysController < ApplicationController
  def survey_params
    params.require(:survey).permit(:name, questions_attributes: [:id, :survey_id,    :content])
  end
class SurveysController
为此:

class SurveysController < ApplicationController
  def survey_params
    params.require(:survey).permit(:name, questions_attributes: [:id, :survey_id,    :content, answers_attributes: [:id, :question_id, :content]])
  end
class SurveysController < ApplicationController
  def survey_params
    params.require(:survey).permit(:name, questions_attributes: [:id, :survey_id,    :content, answers_attributes: [:id, :question_id, :content]])
  end
class SurveysController
例如,只需复制答案属性的白名单,并在问题属性的结束“]”之前插入白名单

希望这能帮助其他人解决同样的问题。

这应该在文档中。不知道为什么有人否决了你。