Comments (2)
@mrrooijen You have exactly the right idea! 🎉
Just like in ActionCable, only code on the server can call stream_from
/stream_for
and you are free to guard that with whatever application logic that you would like.
However, Motion takes this a step further by allowing you to to choose exactly what about each message is available to the client. Since only the rendered markup is exposed, anything that you do not explicitly choose to display will not be visible to the client. In fact, if you choose to ignore a message completely (by not changing the component's state at all in response to it), it isn't even possible for the client to observe that a broadcast was received:
def new_message(message)
return if message.hidden_from?(current_user)
@messages << message
end
Unrelated: You probably do not need to pass in the current_user
explicitly in this context.
from motion.
Brilliant. Thanks for clarifying!
Unrelated: You probably do not need to pass in the current_user explicitly in this context.
Yeah, you probably don't even have to perform checks at this stage in many cases. The fact that you're rendering the component likely means that the current_user
has access to the resources in the first place.
from motion.
Related Issues (20)
- Motion does not work on older IOS versions
- Motion v0.5.0 does not work with ViewComponent >= v2.35.0 HOT 1
- Consider changing the name? HOT 3
- [Question] What's the purpose of data-motion-key and -state? HOT 3
- It doesn't seem that Motion supports passing in a form builder object. HOT 1
- [Discussion] Debouncing input and the mystery of event targets HOT 8
- Slow application startup times in some projects HOT 24
- Intermittent exceptions when disconnecting a component and leaking memory HOT 10
- `session`, `cookies`, and `current_user` are only accessible while rendering HOT 5
- Motion component is unable to have a handle to a form object HOT 7
- Transpiled Event Serialization Issue HOT 1
- Add test helpers for generating events for testing
- Custom element attributes are lost on component re-render
- Events capture HOT 1
- [question] broadcast to multiple clients HOT 3
- Compatibility issue with Rails 6.1 ? HOT 12
- Domain lost after page change HOT 4
- Add better support for custom logging HOT 2
- Documentation: Clarify that info from request is lost after first re-render 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 motion.