Activity
Yeah its outside the form tag.
You made me look at it again, and the form is using the ID of the item!
So doing the following fixes the issue!
<%= button_tag("Create", type: "submit", form: 'edit_product_3') %>
If you put the images in your app/assets/images
directory, then you should be able to call the image directly with no prefix in the path. ie. image_url('logo.png')
I am using the following to submit my form when creating a product.
<%= button_tag("Create", type: "submit", form: 'new_product') %>
However, the issue I am facing is that when I try to do the same for editing a product, the form does not submit at all.
<%= button_tag("Create", type: "submit", form: 'edit_product') %>
My question is, what am I missing from this not to submit the edit form? I mean when I press the button, nothing happens at all. haha
I know there's bound to be simple answer thanks in advance
Posted in Improve on these ActiveRecord requests?
I will give this a try, but i get the idea of having last 30 days as the default. It makes sense.
I could use JSONB to store the visits i suppose, and just update them every few hours.
Cheers Chris, given me something to think about this evening.
Posted in Improve on these ActiveRecord requests?
Do you mean have a column in the Products table which houses the count figure, and have a job to do the calculation each night, and update that figure?
That would be fine, but I may need to get the impressions for the last 7 days, 30 days, 6 months or even a year. So storing it may not be the mode reusable solution.
I have 2 tables, Products
and Impressions
which are related, and impressions belong to products.
maybe i need to get all products, and include the impressions count? that way it should be more efficient.
Posted in Improve on these ActiveRecord requests?
I am trying to get the top 5 products, based on the impressions that product has recieved.
Now the code below is working ok, but its not in the right order, and I cant work out a better way to get the impressions.
@products.joins("INNER JOIN products ON products.id = I.product_id")
.from(Impression.select("product_id, COUNT(product_id) as visits")
.group("product_id").limit(5).order("visits DESC"),:I)
Also, while i am here, is there also a more effiecient way to write out the getting of the total impressions for the last 30 days, based on a selection of products? So far i have the following...
Once again, it works ok, but it feels a little cumbersome. Maybe there is a i could combine both?
@impressions = Impression.joins(:product)
.where('impressions.created_at > ?', 30.days.ago)
.where(products: { id: @products.pluck(:id) })
As always so many ways to get stuff done. I will check out scopes later this evening.
Had to convert the parm to an int using .to_i
but otherwise that worked well. However, as I had set the route "slug" to group_id
. and I then had the issues that my nested routes were given the param group_group_id
dammit! haha
Any way, I stuck the nested resources inside a member do
and a little tweaking of the paths, everything seems to be working as expected. Maybe not the cleanest solution, but sometimes I do feel the strictness of Rails can be a negative.
How about something like this?
add_breadcrumb "category / #{@title}", categories_path
Posted in New Site Design!
loving the new design and how its working. well done sir!
What should add_breadcrumb 'category / ' << @title, categories_path
output?
Maybe this gem could help? https://github.com/weppos/breadcrumbs_on_rails
Hi all,
I have user groups setup on my app using the code below...
class User < ActiveRecord::Base
has_many :user_groups
has_many :groups, through: :user_groups
end
class Group < ActiveRecord::Base
has_many :user_groups
has_many :users, through: :user_groups
end
class UserGroup < ActiveRecord::Base
belongs_to :user
belongs_to :group
end
All is working as expected, users are assigned to a group, and can access the data for that group. I have come accross an issue where any user, can access ANY group. Obvioulsy this is not good haha.
Can anyone recommend how i would go about preventing access to a group if a user is not a member of the group they are trying to access.
I was thinking of using a before_action
and using it there and other controllers when needed.
FYI, i also have products assigned to groups so have a URL structure (below) which measn the ID variable for the group changes, not sure if i could just make that stay as :group_id
maybe?
/groups/{:id}
/groups/{:group_id/products
/groups/{:group_id/products/{:id}
Any help would be much appreciated. Thanks in advance.
Alan
Yeah this is what i was thinking. Cookies were my preffered way, it also means i can keep the url simple.
Thanks as always Jacob. Its good to get feedback on the ideas in my mind :)
Hi all,
Im trying to work out the best way to do a task.
On the users menu, they are able to select a region they are a member of. Once a user selects a region I want to load all data on the page based on that data until they select another, or reset it to all.
So if a user has not selected an option they will see all data for the regions they are a member of.
I have a couple of ideas, but is there a better way to do this?
Idea 1: have a :region_id in the URL - if none loads all. Other wise have a route like
site.com/region/overview
site.com/region/products
site.com/region/:region_id/overview
site.com/region/:region_id/products
Idea 2: Set a cookie, and load based on that?
I did have a look at the import gem, and I am sure moving forward I can refactor the code better for scrapes.
This was an interesting post - https://blog.codeship.com/speeding-up-bulk-imports-in-rails/
It will totally depend on the site, this one I am pulling in a global hit of 152, others may have less. Really enjoying Nokogiri and Sidekiq
Been a while!! :)
I have just been trying something similar, I did start to look at transactions. I think the main issue is that I am creating an array of items to insert. And as this is within sidekiq I am having to use plain ruby.
I am creating new records, and want to be able to catch the ones that error and add them to my activity log so I can look into them and why they may have failed.
What would be the best way to do this?
Currently, I am doing the following by passing over an array of categories.
Category.create(categories)
I have validation on the name of the category to make sure its unique.
- xyz failed to be created.
- Created 99/100 categories, 1 failed.
ActivityLog.create(:act_type => "Insert", :act_action => "", :updated_by => "System", :activity => log_msg, :act_tstamp => Time.now)
But the book is also well worth buying for reference.
I also found Rails: Novice to Ninja quite good - https://www.sitepoint.com/premium/books/rails-novice-to-ninja
Also, check packt publishing and their free ebooks - https://www.packtpub.com/packt/offers/free-learning - they covers many different languages.