Forum https://discourse.hanamirb.org – Code of Conduct http://hanamirb.org/community/#code-of-conduct
timriley on render-env-via-reader-effect
Make context available to expos… (compare)
tak1n on prefer-no-method-error
Prefer NoMethodError over NotIm… (compare)
tak1n on prefer-no-method-error
Prefer NoMethodError over NotIm… (compare)
tak1n on prefer-no-method-error
Prefer NoMethodError over NotIm… (compare)
tak1n on prefer-no-method-error
Fix rubocop offense (compare)
tak1n on prefer-no-method-error
Prefer NoMethodError over NotIm… (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.
gem
?