【发布时间】:2018-07-08 15:32:34
【问题描述】:
我有一个模型,公告,带有一个枚举
Audience = ['everyone', 'signed_in_only','visitor_only', 'app_only', 'exclude_app']
enum audience: Audience
公告控制器定义了 Audience_params
def announcement_params
params.require(:announcement).permit(:body, :audience, :expiry)
end
在创建公告时,audience_params 是
<ActionController::Parameters {"body"=>"This is for everyone", "audience"=>"0", "expiry"=>"27/01/2018"} permitted: true>
我在公告控制器的 action 方法中的代码包括
@announcement = Announcement.new(announcement_params)
@announcement.audience = @announcement.audience.to_i
适用于 rails 5.0。但是现在第一行抛出异常
ArgumentError: '0' is not a valid audience
大概是因为观众值还没有转换成整数。鉴于新方法不进行验证,为什么在 rails 5.1 中会引发此错误,我该如何解决?
【问题讨论】:
标签: ruby-on-rails enums ruby-on-rails-5.1