Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Nov 14 21:40
    landongrindheim commented #553
  • Nov 14 21:24
    landongrindheim commented #556
  • Nov 14 05:14
    7korobi starred hanami/hanami
  • Nov 13 19:14
    timriley synchronize #192
  • Nov 13 19:14

    timriley on hanami-application-router-support

    Add test for context option (compare)

  • Nov 13 06:25

    depfu[bot] on update

    (compare)

  • Nov 13 06:25
    depfu[bot] closed #552
  • Nov 13 06:25
    depfu[bot] commented #552
  • Nov 13 06:25
    depfu[bot] labeled #561
  • Nov 13 06:25
    depfu[bot] opened #561
  • Nov 13 06:10

    depfu[bot] on update

    Update rake to version 13.0.1 (compare)

  • Nov 11 19:43
    S-H-GAMELINKS starred hanami/validations
  • Nov 10 11:46
    timriley edited #1019
  • Nov 10 11:46
    timriley edited #1019
  • Nov 10 11:46
    timriley edited #1019
  • Nov 10 11:46
    timriley edited #1019
  • Nov 10 11:46
    timriley edited #1019
  • Nov 10 11:45
    timriley synchronize #1019
  • Nov 10 11:45

    timriley on application-and-slices

    Raise specific error when tryin… Add test to verify imports work… (compare)

  • Nov 10 11:21
    timriley synchronize #1019
David Dawson
@DangerDawson
Answers my question quite nicely
unleashy
@unleashy
@kaikuchn thank you, that makes total sense!
Tsehau Chao
@jodeci

Hi, I’m trying to do some basic timezone stuff but my google-fu is failing me.
What I want to achieve:

  1. set default timezone for application (say UTC+8)
  2. user input: 2019-01-01 20:00
  3. entity saved as 2019-01-01 12:00:00 UTC
  4. template displays time as 2019-01-01 20:00:00 UTC+8

3 & 4 works right out of the box, but I’m lost at 1 & 2. The closest thing I found was:

# config/initializers/sequel.rb
Sequel.application_timezone = :local

But everything is still saved as 2019-01-01 20:00:00 UTC. Timezones are hard :p

Kai Kuchenbecker
@kaikuchn
I don't think it's a good idea to have sequel handle that. It's like the very furthest point from your users input.
I'd instead suggest to handle the user input that comes without a timezone as if it would specify your default timezone.
If there are many places where user input can happen, then extract that handling into a little PORO that does the magic for you.
There's probably nothing that does out of the box what you want, but I may be mistaken. If so, others please feel free to chime in.
Tsehau Chao
@jodeci
Hmm. Interesting that app wide time zone configuration doesn’t come with the box. I might be biased though (worked on a Rails app with heavy timezone focus recently)
Luca Guidi
@jodosha
:mega: Released hanami-utils v1.3.4 and hanami-view v1.3.2 https://twitter.com/hanamirb/status/1177498984551612416
Edouard
@inouire_twitter
:thumbsup:
Kai Kuchenbecker
@kaikuchn

Well first of all, there is not ActiveSupport::TimeWithZone equivalent in Hanami. So if you need complex time zone stuff - and basic Ruby is really lacking there - you'll need to pull in a Gem for that.
tzinfo has recently improved the interfaces/usability of it's classes, but I haven't checked that out yet. A couple years ago when I was working a lot with time zones I wrote my own gem because ActiveSupport::TimeWithZone had some nasty bugs and while I liked the interface had many design decisions I did not like, plus it was difficult to get JUST time with zone and not all the rest.

I still regularly update that gem whenever there's a new tzinfo release, but I consider it "done". It focuses on correctness and ease of use over speed though.

But there is a gazillion other gems out there, any of which may do what you need. And if you don't have complex timezone needs, I'd suggest to stick with plain ruby as long as comfortably possible.

Oliynyk Taras
@tarnonero
Hello everyone ! I'm having a little trouble with running a hanami application
this is the error:KeyError: key not found: "DATABASE_URL"
alex jamz
@alexjamz_gitlab
use export DATABASE_URL="postgresql://localhost/hanami_app_development"
and hanami db prepare
Oliynyk Taras
@tarnonero
Ok, but the postgres wants the password..So any suggestions there ?
Kai Kuchenbecker
@kaikuchn
you can just add it to the url
just like with basic auth, i.e., postgresql://postgres:SuperStrongPassword@localhost/hanami_app_development
where postgres is the user name
David Dawson
@DangerDawson

What is the recommended way to prevent accidently exposing a XSS vulnerabilities in a view template? The hanami doc’s reccomend either explicitly providing methods for the template in the view e.g.

 def user_name
      user.name
 end

Or escaping the whole object before sending it to the template

 def user
      _escape locals[:user]
 end

Although this does not prevent accidentaly calling user.name in the view, or in the case of the _escape escaping the assoications of the object e.g. user.notes

Another option is to just turn auto-escaping on at the template engine level e.g.Haml::Template.options[:escape_html] = true
Although this goes against Hanami conventions ?
David Dawson
@DangerDawson
Ah, hanami/assets#36 answers the question why auto-escaping is not turned on at the template level
Arvy Petil
@alnpetil
Hi guys, has anyone tried using the light-service gem (https://github.com/adomokos/light-service) with Hanami?
image.png
I've included it and activesupport (since it's looking for it when I run tests) and now I'm getting that error which I'm not familiar with
Kai Kuchenbecker
@kaikuchn
Does the error go away if you don't include activesupport and/or light-service?
The constant in question recently came up when there was some issue with tilt (see rtomayko/tilt#347), so that's also making me a little suspicious. If you're using hanami-utils 1.3.4 maybe the changed lookup has some side-effects? If you're not using 1.3.4 try upgrading to it.
Kai Kuchenbecker
@kaikuchn
@jodosha you've digged into that recently, so maybe you have some insights as to what might be going on there. Here's the transcribed error @alnpetil is experiencing:
 1) Web::View::ApplicationLayout contains application name
    Failure/Error: let(:rendered) { layout.render }

    NameError:
      uninitialized constant Hanami::View::Rendering::NullView::TOPOBJECT
      Did you mean?  Object
    # ./apps/web/templates/application.html.erb:-7:in `method_missing`
Arvy Petil
@alnpetil
Yes it does go away, but ActiveSupport is a dependency, unfortunately, for light-service. I really liked that gem for chaining service objects and was planning to use the same to wrap the interactors I had. I was using Hanami v1.3.1
Arvy Petil
@alnpetil
Updated hanami-utils from 1.3.1 to 1.3.3 and no more errors! I'll let you know after I do more tests. Thank you @kaikuchn
Wonder if the issue you tilt issue is related
glaszig
@glaszig

@hfabre

btw I saw in ROM you can do schema(infer: true) { # ... } and only define specific attributes. It would be awesome to have the same feature in Hanami so we don't have to detail all the table schema for only one column

upvote for customizable inferred schema. i looked into it but as far as i saw it's not an easy change in hanami-model.

Luca Guidi
@jodosha
https://twitter.com/hanamirb/status/1182637973759823874 hanami-assets v1.3.4 - This version allows to precompile assets on Windows.
@kaikuchn @alnpetil That problem was caused by latest tilt. See https://twitter.com/hanamirb/status/1177498984551612416
Sebastjan Hribar
@sebastjan-hribar
Hi, I have a question regarding nested forms. I am building a form for 3 entities. For example, I have A - source string, B - target string and C - translation record. The main form is within the template for the C entity. By submitting the form all three should be created. What would be the best way to approach this? Can I reference the A and B from within the form for C? I can only find the nested fields reference in the guides under form helpers.
Sebastjan Hribar
@sebastjan-hribar
I guess this would be equivalent to fields_for in Rails. Although, another problem I have is also the fact that the C must contain IDs from A and B.
Sebastjan Hribar
@sebastjan-hribar
To add a bit more context to my question above. The goal is to build a translation editor interface, effectively having one template for managing multiple entities. What would the best practice be? I'm thinking of having a template for /translation_record (possibly /translation_editor) and then moving the logic to an interactor to handle the creation of all entities and finally calling the interactor in the translation_recordaction. Can someone point me in the right direction to build such more complex scenarios?
Kai Kuchenbecker
@kaikuchn
Can you show us some example code? Or maybe some pseudo code of what you'd like to achieve?
Sebastjan Hribar
@sebastjan-hribar
@kaikuchn Sure, I'll draft some pseudo code for the files and code I think would correspond for such scenario.
EGORIDI
@EGORIDI
Hi folks. I'm getting started with the tutorial and could'nt migrate the database schema. When I try I get a "SQLite3 SQLException: no such table: schema_migrations: SELECT NULL AS 'nil' FROM schema_migrations LIMIT 1" as well as " SQLite3::SQLException: no such table: schema_info: SELECT NULL AS 'nil' FROM schema_info LIMIT 1".
When I try to prepare the database with "HANAMI_ENV=test bundle exec hanami db prepare " I get "HANAMI_ENV=test : The term 'HANAMI_ENV=test' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again." Does anyone know how can I get through it?
Paweł Świątkowski
@katafrakt
@EGORIDI Are you using in-memory SQLite db? IIRC it does not work now, you should use persisted one.
Kai Kuchenbecker
@kaikuchn

When I try I get a "SQLite3 SQLException: no such table: schema_migrations: SELECT NULL AS 'nil' FROM schema_migrations LIMIT 1" as well as " SQLite3::SQLException: no such table: schema_info: SELECT NULL AS 'nil' FROM schema_info LIMIT 1".

It's okay for that table to not exist, it should simply be created subsequently. Sadly, this "error" is printed to the console and confuses people.
What @katafrakt said still applies.

EGORIDI
@EGORIDI
Thanks, I'll try it.
Emir Fernandes da Ponte
@EmirFernandes_gitlab
Hello!
Kai Kuchenbecker
@kaikuchn
Hi
Danny Santos
@DannySantos
Does anybody have any advice on clearing the params after an AJAX request? Because the template that gets rendered comes directly from (for example) the create view/controller, it still has the params that were submitted in the post request. This causes issues when, for example, re-rendering a form upon success. You don’t want the form builder to attempt to fill in the fields with the params.
Kai Kuchenbecker
@kaikuchn
Redirect on success instead of re-rendering the form. That way the user can even refresh the page without triggering a post again.
Danny Santos
@DannySantos
@kaikuchn but doesn’t that somewhat defeat the point of AJAX? The great benefit of asynchronous apps is that we can create a seamless user experience as well as make the app more efficient by not having to reload the page or redirect.