首頁  >  問答  >  主體

ruby - 虚拟属性的 属性名= 方法不执行

user.rb 定义了 password 虚拟属性

user.html.erb 定义了虚拟属性表单

然而输出了一下 password= 那个方法没有执行....23333

请指教

巴扎黑巴扎黑2759 天前710

全部回覆(3)我來回復

  • 巴扎黑

    巴扎黑2017-04-24 09:11:50

    因為用了 ror 4.2 正確的做法是把你的 虛擬屬性加入到 :permit(:虛擬屬性名) 中

    回覆
    0
  • 阿神

    阿神2017-04-24 09:11:50

    我沒怎麼用過 erb,不過你確定模板裡會呼叫password=這個方法嗎?
    這種需求我習慣用 before_create 回調…

    另外這種事兒交給專業的去做吧。

    回覆
    0
  • 怪我咯

    怪我咯2017-04-24 09:11:50

    Ruby on Rails 不需要直接寫 attr_accessor.

    但需要使用到 strong-parameters,參考下面的寫法,把 password 加入 白名單中:
    http://edgeguides.rubyonrails.org/action_controller_overview.html#stro...

    回覆
    0
  • 取消回覆