Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.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 Rails:执行时出现问题';拆分';在线上_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails Rails:执行时出现问题';拆分';在线上

Ruby on rails Rails:执行时出现问题';拆分';在线上,ruby-on-rails,ruby,Ruby On Rails,Ruby,当为我的“问题”对象创建新条目时,我的代码工作正常 但是,使用各种方法,我无法正确获取提交到def update的编辑路由 经过一番努力,我意识到我的create方法对一个命名对象执行拆分,如下所示: def create @question = Question.new(params[:question]) ... @question.options = @question.options.split(',').collect(&:strip) 在我的更新方法中 def

当为我的“问题”对象创建新条目时,我的代码工作正常

但是,使用各种方法,我无法正确获取提交到
def update
的编辑路由

经过一番努力,我意识到我的create方法对一个命名对象执行拆分,如下所示:

def create
  @question = Question.new(params[:question])
  ...
  @question.options = @question.options.split(',').collect(&:strip)
在我的更新方法中

def update
  @question = Question.find(params[:id])
我需要以某种方式格式化这一行中
参数[:question]
选项

  if @question.update_attributes(params[:question]) 
否则,
更新_属性
将失败。我不知道怎么做。谢谢你的帮助

使用拆分设置格式后,
@question.options
的输出:

["options", "---\n- Extremely unlikely\n- Unlikely\n- Neutral\n- Likely\n- Extremely likely\n-"]

如果我正确理解您的问题,您应该将格式代码移动到问题类中的回调:

class Question
  before_save :format_options
  def format_options
    write_attribute :options, read_attribute(:options).split(',').collect(&:strip)
  end
end

请告诉我们
@question.options
的输出。能否显示您用于更新@question的表单。params[:question]中的选项是什么?更新_属性如何失败?更新操作启动了吗?抛出错误?不更新属性?如果是,哪个属性?选项在参数[:问题]中,因为它们被传递到#update from#edit。这非常有效。我花了好几个小时在这上面。多么优雅的解决方案。非常感谢。