Any reason you can't use model.errors.messages ?

On Tuesday, December 12, 2017 at 6:01:44 AM UTC-6, ma...@goodlife.tw wrote:
>
> I happen to implemented a gem for this, and only now realized someone 
> having the same issue as me.
>
> Repo: https://github.com/lulalala/adequate_errors
> Blog post: http://lulalala.logdown.com/posts/2909828-adequate-errors
>
> Would it be possible to take some of these to Rails 6 (with the intention 
> to break compatibility?)
>
> Rafael Mendonça França於 2016年2月29日星期一 UTC+8下午11時58分01秒寫道:
>>
>> I'm positive for this enhancement. The type information is already 
>> retained in Rails 5 but having real object could be real handy.
>>
>> On Mon, Feb 29, 2016 at 12:47 PM Evan Prothro <evan.p...@gmail.com> 
>> wrote:
>>
>>> I love the concept and usability of an ActiveModel::Errors paradigm. 
>>> However, I and others often find it frustrating to work with the 
>>> implementation.
>>>
>>>
>>> I'd love to see a proper ActiveModel::Error object, where the errors 
>>> attribute of a model including ActiveModel::Errors was an Enumerator of 
>>> these objects.
>>>
>>>
>>> There are various implied benefits and added flexibility that could be 
>>> introduced in a backwards compatible way later, and immedate benefits. 
>>> Would love to know what y'all think about this. Happy to implement if 
>>> desired.
>>>
>>>
>>>
>>> <https://gist.github.com/eprothro/5ea12fd2b0527baf0090#immediate-benefits>Immediate
>>>  
>>> Benefits
>>>
>>>
>>> <https://gist.github.com/eprothro/5ea12fd2b0527baf0090#the-error-type-could-be-retained>The
>>>  
>>> error type could be retained
>>>
>>> APIs we build prefer to return Error objects to clients with the 
>>> following schema:
>>>
>>> {
>>>   attribute:  "The model attribute to which the error applies. If blank, 
>>> the error applies generically to the base model.",
>>>   type:       "The type of error encountered with the model attribute or 
>>> model."
>>>   messsage:   "An internationalized message that can be displayed to a 
>>> user.",
>>> }
>>>
>>> In particular, the type attribute allows clients to couple any logic 
>>> they need on the error attribute and type, not themessage, which should 
>>> be able to change with business/product needs.
>>>
>>> With a proper ActiveModel::Error object, this is easily done. With the 
>>> current enumerable design, this is not a clean extension to make 
>>> <https://gist.github.com/eprothro/d58d143729987c6c8834>.
>>>
>>>
>>> <https://gist.github.com/eprothro/5ea12fd2b0527baf0090#the-error-message-can-be-lazily-looked-up>The
>>>  
>>> error message can be lazily looked up
>>>
>>> Currently, the message interpolation is looked up when the error is 
>>> added to the model. This isn't necessarry, and is easily lazily evaluated 
>>> when a derived attribute on an Error object.
>>>
>>>
>>>
>>> <https://gist.github.com/eprothro/5ea12fd2b0527baf0090#other-enhancements-easily-enabled>Other
>>>  
>>> Enhancements easily enabled
>>>
>>>
>>> <https://gist.github.com/eprothro/5ea12fd2b0527baf0090#accessing-the-attribute-value-more-cleanly>Accessing
>>>  
>>> the attribute value more cleanly
>>>
>>> error = model.errors.first
>>> error.attribute
>>> => :username
>>> error.attribute_value
>>> => 'eprothro'
>>>
>>>
>>>
>>> <https://gist.github.com/eprothro/5ea12fd2b0527baf0090#easier-custom-interpolation-parameters>Easier
>>>  
>>> custom interpolation parameters
>>>
>>> # en.yml
>>> errors:
>>>       models:
>>>         user:
>>>           attributes:
>>>             username:
>>>               taken: "%{value} has already been taken."
>>>
>>> -- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "Ruby on Rails: Core" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to rubyonrails-co...@googlegroups.com.
>>> To post to this group, send email to rubyonra...@googlegroups.com.
>>> Visit this group at https://groups.google.com/group/rubyonrails-core.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-core+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-core@googlegroups.com.
Visit this group at https://groups.google.com/group/rubyonrails-core.
For more options, visit https://groups.google.com/d/optout.

Reply via email to