Comments (9)
Can you describe what you exactly mean?
Normally, the API which Her connects to defines the schema/models and interacts with a database.
from her.
Not sure if that's what the OP meant but sometimes it's necessary to define attributes on which validation has to be performed.
I'm using the active_attr gem with her to achieve this.
https://github.com/cgriego/active_attr
from her.
I'm in the process of making Her compatible with ActiveModel (see the activemodel
branch). I might add active_attr
in it too!
from her.
We had the same problem. Our current solution (even if not optimal) is to make an API call via Her to get an empty object with all attributes where needed (mostly form building). This prevents us from defining attributes in every app that uses Her models.
from her.
The main goal was for validation indeed
from her.
Validation should be done by the API and not by the application using the API as this would lead code duplication.
from her.
When using rails it takes the model validation to return errors in forms and you don't goto the API until you know that your model is valid, but if HER is made compatible with ActiveModel then it should be sufficient as that also concludes validation
from her.
Hey guys, I just released her-0.5(.1)
which adds an attributes
method to model classes. With it, you can actually use ActiveModel::Validations
and ActiveModel::Dirty
modules (that are now included in all models):
class User
include Her::Model
attributes :fullname, :email
validates :fullname, :presence => true
validates :email, :presence => true
end
@user = User.new(:fullname => "Tobias Fünke")
@user.fullname_changed? # => true
@user.changes # => { :fullname => [nil, "Tobias Fünke"] }
@user.valid? # => false
@user.errors.full_messages # => ["Email can't be blank"]
@user.save
# POST /users&fullname=Tobias+Fünke will still be called, even if the user is not valid
I’m not a big fan of validating data on the client (since the API always has the last word before creating/updating resources) but it can be nice to manually validate the data before calling the API.
from her.
I’m gonna close this issue now since there’s now a way to add a schema to models (with the attributes
method).
from her.
Related Issues (20)
- path_prefix option is not used when belongs_to association is set. HOT 5
- add ability to wrap "where" clause HOT 4
- Support for first, limit, group and order HOT 6
- Support for update_attributes missing? HOT 6
- Support for association extensions HOT 1
- undefined method `map' for nil:NilClass for association HOT 6
- Class-level response parsing? HOT 1
- Scopes on JsonApi model
- Find or Create by ID HOT 2
- Have we considered making this gem more SEO friendly? HOT 4
- Attributes don't play nicely with ActiveModel::Dirty in Rails 6
- Safe Navigation Operator &. don't works on nil objects
- I would like to have find_by! in order to raise an exception instead of a nil HOT 1
- HashWithIndifferentUsage is slow, and requires large ActiveSupport dependency
- ruby 2.7, rails 6.0 and faraday 1.0 HOT 3
- Release version 1.1.1 HOT 1
- her-rb.org website inaccessible. HOT 1
- Organizing a fork of her HOT 1
- Execute rescue_from plus her? HOT 1
- Model.all returns empty array, but response has data HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from her.