Favorite user profiles on rails

so I created a web application that has user profiles where users can search for other users based on interests, etc. How can I add a feature in which users can like the profile of faces? That is, User A finds User B and loves what he sees, and can click the "Favorites of this profile" button, and perhaps he has withdrawn and saved? What would the code look like for this? Just an idea, but I'm open to all ideas.

user_profile.html.erb

<%= render "shared/header" %>

<div id="landing_welcome_page">
  <div class="container">
    <div class="row">

      <%#= Profile image upload  %>
      <div class="span4">
        <%= user_avatar(current_user) %>
        <%#= Space w line  %>
        <div class="name"></div><br>

        <%#= Please bare in mind these are strickly temporary placeholders i.e whitespace  %>
        <%= render 'social' %>
      </div>

      <div class="span8">
        <%# User name %>

          <span class="name1">
            <% if current_user.first_name.blank? %>
            <%= current_user.first_name.present? ? current_user.first_name : link_to('Finish your profile', edit_account_path)%>
            <% else %>
            <%= current_user.first_name %> <%= current_user.last_name %>
            <% end %>
          </span>
          <span class="side-buttons">
        <div class="name"></div>
          </span>
        </span>
      </div>

      <div class="row">
        <br />
        <div class="span6">
          <%# User occupation %>
          <i class="fa fa-usd"></i>:
          <%= best_in_place current_user, :occupation, nil: 'Add occupation' %>
        </div>

        <div class="addy">
          <div class="span2">
           <%# User address %>
           <i class="fa fa-home"></i>:
           <%= current_user.address.present? ? current_user.address : link_to('Add Address', edit_account_path) %>
         </div>
       </div>

       <div class="span6">
         <%# User gender %>
     <br />
         <% if current_user.gender == "M" || "male" %>
         <i class="fa fa-male"></i> Male
         <% else %>
         <i class="fa fa-female"></i> Female
         <% end %>
       </div>

       <div class="span2">
         <!-- Code to calculate age by user birthday -->
     <br />
         Age: <%= user_birthday %>
       </div>

       <div class="span8"></div>

       <div class="span8"><div class="name"></div></div>
       <div class="span8">
        <div class="tabbable"> <!-- Only required for left/right tabs -->
          <ul class="nav nav-tabs">
            <li class="active"><a href="#tab1" data-toggle="tab">About me</a></li>
            <li><a href="#tab2" data-toggle="tab">Photos</a></li>
            <li><a href="#tab3" data-toggle="tab">Personality</a></li>
          </ul>
          <div class="tab-content">
            <div class="tab-pane in active" id="tab1">
              <% @questions_for_about.each_with_index do |question, index| %>
              <div class="question">
                <h4 class="user_questions">
                  <%= index + 1 %>. <%= question.question %>
                  <%= link_to ("<i class='icon-edit'></i>".html_safe),
                  edit_user_question_path(current_user, question),
                  remote: true, class: "edit_link_#{question.id}" %>
                </h4>
                <div class="answer" id="answer_<%= question.id %>">
                  <%= answer_for(question) %>
                </div>
              </div>
              <% end %>
            </div>
            <div class="tab-pane" id="tab2">
              <div class="page-header">
                <%= form_for Photo.new do |f| %>
                <span class="btn btn-success fileinput-button">
                  <i class="icon-plus icon-white"></i>
                  <span>Add photos...</span>
                  <%= f.file_field :file, multiple: true, name: "photo[file]" %>
                </span>
                <% end %>
                <div class="clearfix"></div>
              </div>
              <div class="photos_cont">
                <div class="col-sm-6 col-md-3">
                  <span class="gallery"><%= render current_user.photos %></span>
                </div>
              </div>
            </div>
            <div class="tab-pane" id="tab3">
              <% @questions_for_personality.each_with_index do |question, index| %>
              <div class="question">
                <h4 class="user_questions">
                  <%= index + 1 %>. <%= question.question %>
                  <%= link_to ("<i class='icon-edit'></i>".html_safe),
                  edit_user_question_path(current_user, question),
                  remote: true, class: "edit_link_#{question.id}" %>
                </h4>
                <div class="answer" id="answer_<%= question.id %>">
                  <%= answer_for(question) %>
                </div>
              </div>
              <% end %>
            </div>
          </div>
        </div>
      </div>
    </div>
    <%= render '/shared/footer' %>
  </div>
</div>

<script id="template-upload" type="text/x-tmpl">
<div class="upload">
{%=o.name%}
<div class="progress"><div class="bar" style="width: 0%;"></div></div>
</div>
</script>
<script>
var fb_param = {};
fb_param.pixel_id = '6009056882201';
fb_param.value = '0.00';
(function(){
  var fpw = document.createElement('script');
  fpw.async = true;
  fpw.src = '//connect.facebook.net/en_US/fp.js';
  var ref = document.getElementsByTagName('script')[0];
  ref.parentNode.insertBefore(fpw, ref);
})();
</script>

<noscript>
  <img height="1" src="https://www.facebook.com/offsite_event.php?id=6009056882201&amp;value=0" style="display:none;" width="1"/>
</noscript>
<script type="text/javascript">
// remove default datepicker event
jQuery(document).off('best_in_place:datepicker');

jQuery(document).on('best_in_place:datepicker', function(event, bip, element) {
  // Display the jQuery UI datepicker popup
  jQuery(element).find('input')
  .datepicker({
    format: element.data('date-format')
  })
  .on('hide', function(){
    bip.update();
  })
  .on('changeDate', function(){
    $(this).datepicker('hide');
  })
  .datepicker('show');
});
</script>
+4
source share
1 answer

Create your favorite model with has_and_belongs_to_many user relationships

Favorite , , :

@user.favorites = [ user1, user2, user3 ]
@user.favorites << user4

- :

<%= @user.favorites.map(&:name).to_sentence %>

, , : http://guides.rubyonrails.org/association_basics.html

+1

All Articles