Skip to main content

@Mentions, Autocomplete, Notifications, and Links | GoRails - GoRails

General • Asked by Chris Oliver

This is cool. Although, when you said 'notifications' I was expecting in-app notifications not an email notification. I was wondering how you were going to cover so much material in 1 episode, but now that I realize it was just a brief email notification, I understand.

I would modify the title and description to just focus on @Mentions and Autocomplete, with a sprinkle of notifications and links added in.

Otherwise, awesome stuff.

In-app notifications is actually going to be my next episode!

Will be a free or pro episode for this upcoming one?


Chris, great stuff, thanks. Note that \w in a regex *is* a character class, so it does not need to be enclosed in the [ ] brackets if it's by itself. So /@(\w+)/ is all you need. Also, this would need some tweaking to avoid matching the domain name of an email address, for example. (html-pipeline's version does this)

Great points! Upvoting so everyone can see this. :)


Great episode! Learn few tricks there.

I'm not is there any way to use At.js to support what is similar to facebook mention, it means it will use display name instead of unique field, but I think they keep either id or username in local values there.

You might be able to, I'm not entirely sure. The full names make it more complicated.

You can inspect the HTML on Facebook to get an idea of how they do it. They have a much more complex system for it as you'll see with their "highlighter" class right above the textarea. Rather that doing much of this in text, they handle much of it in the JS instead so they can do more complex things. An out-of-the-box JS library like at.js won't be able to compete with that.


it is an awesome and great episode, thanks so much

Thanks David! :)


I found a gotcha to be aware for everyone who is/were watching this episode. When upon calling @mention into the post and click on the referenced username, it will return a invalid number ID instead of the username ID.

I made some changes to the User controller ruby code. To get your username referenced in the URL like /users/yourusernamehere, you will need to the following changes:

In your db/migrate/[datetime-stamp]_create_users.rb:

line 4: create_table :user, id: false do # add this id method into your file before migrating

In app/models/user.rb:

[new line] line 2: self.primary = 'username'

In config/routes.rb:

resources :users, param: :username # add this line as well.

In app/controllers/users_controller.rb:

def user_params
User.find(params[:username]) # alter :id with username
end

And that should work for everyone! (p.s: you will need to reset your database if you migrated before aka rake db:reset)

Super awesome! Thanks for this. :)


How to apply complete name as mention and link so it can have space etc?


Great video!


hi @excid3:disqus on the @mentions episode can you share the css you use to show both user name and profile picture?

Thanks


Hey Chris,I don't have a Users Controller.I am using devise so i have a registrations controller
class RegistrationsController < Devise::RegistrationsController
private

def sign_up_params
params.require(:user).permit(:email, :user_name, :full_name, :password, :password_confirmation)
end

def account_update_params
params.require(:user).permit(:email, :user_name, :password, :password_confirmation, :current_password)
end
end

I added an index action and created an index.json.builder but when i navigate to /registrations.json i get an error

So how do i get json file.

You can still create a users controller even if you use Devise so you can make the /users.json endpoint. Devise doesn't define a GET route for /users, just POST and PUT which means you're free to create one or you can make a different route as well.


Login or Create An Account to join the conversation.

Subscribe to the newsletter

Join 24,647+ developers who get early access to new screencasts, articles, guides, updates, and more.

    By clicking this button, you agree to the GoRails Terms of Service and Privacy Policy.

    More of a social being? We're also on Twitter and YouTube.