0

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

但是,使用各种方法,我无法def update正确提交编辑路线。

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

def create
  @question = Question.new(params[:question])
  ...
  @question.options = @question.options.split(',').collect(&:strip)

在我的更新方法中,

def update
  @question = Question.find(params[:id])

我需要以某种方式格式化这一行中的optionsof params[:question]

  if @question.update_attributes(params[:question]) 

否则,update_attributes失败。我无法弄清楚如何做到这一点。任何帮助表示赞赏。

@question.options使用 split 格式化后的输出:

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

1 回答 1

2

If I understand your problem correctly, you should move your formatting code to a callback in your Question class:

class Question
  before_save :format_options
  def format_options
    write_attribute :options, read_attribute(:options).split(',').collect(&:strip)
  end
end
于 2013-06-18T14:21:41.880 回答