【问题标题】:How do you transform an activerecord attribute from a string to a has_many relationship on reads and writes?如何在读写时将 activerecord 属性从字符串转换为 has_many 关系?
【发布时间】:2011-05-08 00:19:07
【问题描述】:

我希望能够像这样组织 ActiveRecord 对象:

类作业

并希望有一个带有指向 :value 属性的文本框的 a from 并能够调用 Job.create(form_data) 并在行表中创建行。同样,我希望文本框填充来自值访问器的数据。有没有一种简单的方法可以做到这一点?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3


    【解决方案1】:

    如果你这样做,它就会像你描述的那样工作:

    在控制器中:

    @job = Job.find(params[:id])
    

    在视图中:

    
    form_for @job do |f|
      f.label :value
      f.textarea :value
    end
    

    在模型中:

    
    def value
      lines.map(&:text).join("\n")
    end
    
    def value=(v)
      lines.delete
      v.split("\r?\n").each {|line| lines << Line.new(:text=>line)}
    end
    

    【讨论】:

    • 已更新,添加了 value= 方法 也适用于保存。它在您的情况下不起作用,因为 lines 被认为是局部变量。您可以使用 self.lines。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多