Forum https://discourse.hanamirb.org – Code of Conduct http://hanamirb.org/community/#code-of-conduct
timriley on main
Add CHANGELOG entry for v2.0.0.… (compare)
timriley on main
Prepare CHANGELOG entry for v2.… (compare)
timriley on main
Prepare CHANGELOG entry for v2.… (compare)
This is my first part of my yesterday's question. I've removed the gem list:
I'm experiencing a really odd issue. I'm getting TypeError at no implicit conversion of Integer into String
for this line: session[:session_start_time] + @validity_time.to_i < Time.now
. This started on a development branch where the only change that might impact this is the gemfile
or gemfile.lock
. On master, session[:session_start_time]
is a NilClass
and on the development the session[:session_start_time]
is a String class. I did delete the gemfile.lock
on the development and ran a fresh bundle install. The session[:session_start_time]
is set as Time.now
.
I've checked Tachiban and irb for the comparison and it runs fine, as well as on the master branch.
Now for the solution:
I've found the culprit. It was hanami 1.5.0
. Reverting it back to hanami 1.3.0
solves the problem. Now I don't know, does this qualify for an issue for Hanami or Tachiban?
scope
with path parameters feels a bit lonely. hanami/api#29Hey, sorry if it's been asked before. 1 day into Hanami
Is there a good hanami 2 app example with project structure?
Found https://github.com/hanami/hanami-2-application-template but it seems it doesn't have all the entities
Yo guys, quick question. Does hanami2(rom, sequeel) support psql yet?
When I run:
bundle exec hanami db create_migration apples
I get:
/src/vendor/bundle/ruby/3.0.0/gems/hanami-cli-2.0.0.alpha3/lib/hanami/cli/commands/db/utils/database.rb:32:in `block in []': psql is not a supported db scheme (RuntimeError)
PG::ConnectionBad: FATAL
docker-compose run --rm apple_project bundle exec hanami db drop
Creating apple_project_apple_project_run ... done
=> database apple_project_development dropped
❯
❯ brun hanami db create
docker-compose run --rm apple_project bundle exec hanami db create
Creating apple_project_apple_project_run ... done
=> database apple_project_development created
❯ brun hanami db migrate
docker-compose run --rm apple_project bundle exec hanami db migrate
Creating apple_project_apple_project_run ... done
bundler: failed to load command: hanami (/brokerkit/src/vendor/bundle/ruby/3.0.0/bin/hanami)
/brokerkit/src/vendor/bundle/ruby/3.0.0/gems/sequel-5.50.0/lib/sequel/adapters/postgres.rb:210:in `initialize': PG::ConnectionBad: FATAL: database "apple_project_development" does not exist (Sequel::DatabaseConnectionError)
hanamin db create_migration create_users
I keep getting the error below...what am I missing?Traceback (most recent call last):
23: from /home/aes/.rbenv/versions/2.7.2/bin/hanami:23:in `<main>'
22: from /home/aes/.rbenv/versions/2.7.2/bin/hanami:23:in `load'
21: from /home/aes/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/hanami-cli-2.0.0.alpha3/exe/hanami:10:in `<top (required)>'
20: from /home/aes/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/dry-cli-0.7.0/lib/dry/cli.rb:65:in `call'
19: from /home/aes/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/dry-cli-0.7.0/lib/dry/cli.rb:116:in `perform_registry'
18: from /home/aes/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/hanami-cli-2.0.0.alpha3/lib/hanami/cli/commands/application.rb:15:in `call'
17: from /home/aes/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/hanami-cli-2.0.0.alpha3/lib/hanami/cli/commands/monolith/db/create_migration.rb:17:in `call'
16: from /home/aes/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/hanami-cli-2.0.0.alpha3/lib/hanami/cli/commands/application.rb:54:in `database'
15: from /home/aes/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/hanami-cli-2.0.0.alpha3/lib/hanami/cli/commands/application.rb:28:in `application'
14: from /home/aes/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/hanami-cli-2.0.0.alpha3/lib/hanami/cli/commands/application.rb:28:in `require'
13: from /home/aes/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/bundler/gems/hanami-5998b4f58d84/lib/hanami/init.rb:3:in `<top (required)>'
12: from /home/aes/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/bundler/gems/hanami-5998b4f58d84/lib/hanami/init.rb:3:in `require_relative'
11: from /home/aes/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/bundler/gems/hanami-5998b4f58d84/lib/hanami/setup.rb:7:in `<top (required)>'
10: from /home/aes/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/zeitwerk-2.5.1/lib/zeitwerk/kernel.rb:35:in `require'
9: from /home/aes/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/zeitwerk-2.5.1/lib/zeitwerk/kernel.rb:35:in `require'
8: from /home/aes/Coding/Ruby/HANAMI/hanami_2_auth_app/config/application.rb:11:in `<top (required)>'
7: from /home/aes/Coding/Ruby/HANAMI/hanami_2_auth_app/config/application.rb:12:in `<module:Hanami2AuthApp>'
6: from /home/aes/Coding/Ruby/HANAMI/hanami_2_auth_app/config/application.rb:15:in `<class:Application>'
5: from /home/aes/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/bundler/gems/hanami-5998b4f58d84/lib/hanami/application/settings.rb:82:in `method_missing'
4: from /home/aes/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/dry-configurable-0.13.0/lib/dry/configurable/config.rb:112:in `method_missing'
3: from /home/aes/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/dry-configurable-0.13.0/lib/dry/configurable/setting.rb:79:in `value'
2: from /home/aes/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/dry-configurable-0.13.0/lib/dry/configurable/setting.rb:147:in `evaluate'
1: from /home/aes/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/dry-types-1.5.1/lib/dry/types/type.rb:49:in `call'
/home/aes/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/dry-types-1.5.1/lib/dry/types/constrained.rb:42:in `call_unsafe': nil violates constraints (type?(String, nil) failed) (Dry::Types::ConstraintError)
postgresql://
support: https://hanamirb.org/blog/2021/12/07/announcing-hanami-200alpha4/
container['interactors.interactor_name']
? What if I typo the container name, when will Hanami catch that?
Hi everyone, I've written a JWT authorization gem build on top of dry to easily integrate with Hanami 2.0. https://discourse.hanamirb.org/t/authentication-and-authorization-recommendations/200/6?u=swilgosz
Feel free to check it out! A cool thing is that it uses dry-effects! :D
video.find(id)
I get both .location
and .location_id
to be nil and I can't do a consecutive location.find
because of that. How do I do this?
aggregate(:location).where(id: id).map_to(Video).one
in a single call — one of them doesn't seem to update parent object. or am I doing something wrong with this?
class VideoRepository < Hanami::Repository
associations do
belongs_to :location
has_one :video_info
end
def find_with_location(id)
aggregate(:location).where(id: id).map_to(Video).one
end
def find_with_info(id)
aggregate(:video_info).where(id: id).map_to(Video).one
end
def find_with_info_and_location(id) # this function doesn't populate location nor location_id
aggregate(:location).where(id: id).map_to(Video).one
aggregate(:video_info).where(id: id).map_to(Video).one
end
end
Hanami::Model.migration do
change do
create_table :videos do
primary_key :id
foreign_key :location_id, :locations, null: false
end
end
end
Hanami::Model.migration do
change do
create_table :locations do
primary_key :id
end
end
end
Hanami::Model.migration do
change do
create_table :video_infos do
primary_key :id
foreign_key :video_id, :videos, null: false, on_delete: :cascade
end
end
end
Hi everyone, first time here and with a question! I am trying to integrate Webpack (with Babel) for react using the hanami-webpack and hanami-assets gem, but I got into some trouble with import statements.
In my application.html.erb file, i use the <%= javascript 'index' %>
helper that points to my index.js file in assets, which works fine when it's pure Javascript and does not have any import statements. However, when i try to import React, it throws an error: "Uncaught SyntaxError: Cannot use import statement outside a module"
One of the solutions i found online is to put "type"="module"
to package.json to ensure that all .js files are seen as modules and not CommonJS - I tried doing it, but it lead to another error with my Webpack.config.js file, which is using 'require' instead of import. I changed the file extension to Webpack.config.cjs, which resolved the error the server was throwing, but I am still stuck with 'Cannot use import statement outside of module'
Does anyone know how to solve this? Is there a good example of how to integrate React with Hanami? Thanks!
Hey everyone, hope you are enjoying your holidays - just fyi, after several days of tinkering with trying to integrate React as the frontend with Hanami, I came up with a basic setup that I am hoping is useful to see for anyone who is new and would like to do the same thing - I gave up on Webpack because it was unnecessarily complicated, could not get hot reload to work and the compile times were pretty long - so I used ESbuild instead. Here is a repo with a template you can use: https://github.com/glemin5011/react_on_hanami
Just be aware that it does not have any installer or anything, so things such as .env files etc. are not really transferrable to new projects - this repo is more of a demo / guide
Edit: This is for Hanami v1.3.5
Hey, I have this code in the views/application.rb
:
def current_user_roles
UserRepository.new.find(session[:current_user]).roles
end
where the current_user is the user's ID. However, the view has no access to the session
. How can I bypass this? The use case is limiting the displayed items as per user roles.
bundle
when working with the hanami 2 template...for some reason, mine is stuck and does not process beyond this point (ongoing now for over half an hour)...
Running bundle install - this may take a few minutes
Fetching gem metadata from https://rubygems.org/.........
Fetching https://github.com/hanami/hanami.git
`
Hey Hanami experts, I've just cloned the template repo for Hanami 2, followed the steps for setting up, but when it came time to setup a new migration, I ran into the following error:
`method_missing': undefined method `session_secret' for #<Hanami::Application::Settings:0x000055af322964b8 @config=#<Dry::Configurable::Config values={}>> (NoMethodError)
What could I be doing wrong?
Hey Hanami experts, I've just cloned the template repo for Hanami 2, followed the steps for setting up, but when it came time to setup a new migration, I ran into the following error:
`method_missing': undefined method `session_secret' for #<Hanami::Application::Settings:0x000055af322964b8 @config=#<Dry::Configurable::Config values={}>> (NoMethodError)
What could I be doing wrong?
By the way, I've already setup a secret string in the .env file
Hi, I've encountered another issue when deploying to production. I'm deploying with docker on client's server and I have bundle exec hanami assets precompile
in my docker compose right before starting the server. However, not all assets are in the public
folder.
If I run precompile before the build and don't run precompile with compose then I get the Internal Server Error
.
If I run precompile in a running container the assets are again not served.
I have the option to serve static assets set to true in my .env.production
.
As per usual, what am I doing wrong?
Is it possible to have raw sql like this:
def find_by_segment_match(source_text_for_lookup, source_lang)
segments
.read("set pg_trgm.similarity_threshold TO 0.4;
SELECT *, SIMILARITY(segments.content, '#{source_text_for_lookup}') AS similarity
FROM segments
JOIN translation_records
ON segments.id = translation_records.source_segment_id
LEFT JOIN segments AS target_segments
ON translation_records.target_segment_id = target_segments.id
WHERE segments.language_id = #{source_lang} AND segments.content % '#{source_text_for_lookup}'
ORDER BY segments.content <-> '#{source_text_for_lookup}';").map_to(Segment)
end
and to map it to a entity, in my case Segment
. I wanted to use raw sql since I have trouble implementing the LEFT JOIN
with Hanami.