Ir al contenido principal

Rails - Basic Steps VI

Commands

  • time_ago_in_words()  - As the name said put a date in words
  • redirect_to - Redirect to an URL
  • params[:attribute] - Get in the controller the parameters from the session

Authentication

  • In the controller root_app\app\controllers\*.rb
    • At the beginning of the file add :  before_action :authenticate, except: [:index, :show]
      • Where authenticate is a method, that need to be defined
    • Then add at the final of the file the method definition
        def authenticate
            authenticate_or_request_with_http_basic do |name, password|
              name == "admin" && password == "123"
            end
        end

    Ajax (Video 8 6:56 min)

    • In the View root_app\views\post\show.html.erb
      • In the form tag, add a parameter to the form_for method:   remote: true
    • In the Controller root_app\controller\comment_controllers
      • Add the line:  format_js
      • If after that you do not specified any file, the default file to consider is method_name.js.erb
    • Create a JS cretate.js.erb 
      • Create a file in root_app\views\comments and named create.js.erb
        • Add the code
    var new_comment = $("<%= escape_javascript( render(:partial => @comment))%>").hide();
    $('#comments').prepend(new_comment);
    $('#comments_<%= @comment.id %>').fadeIn('slow');
    $('#new_comment')[0].reset();

    escape_javascript() - Ruby validate that the code is valid javascript
    • Return to root_app\views\comment\ and Create partial template for the part you want to create dynamically _comment.html.erb
      • Add the following lines (this code come from the View) :
    <%= div_for comment do %>
          <p>
               <strong> Posted <%= time_ago_in_words(comment.created_at) %>  ago  </strong>
               <br/>
               <%= h(comment.body)  %>
          </p>
    <% end %>





    • In the View root_app\views\post\show.html.erb



    • Replace the code for show comments for:
    • <%= render :partial => @post.comments.reverse  %>



      Comentarios

      Entradas populares de este blog

      C# Using tabs

      To use tabs in C# use the TabContainer element from AjaxControlToolkit Include AjaxControlToolkit  Include in the Web.config file, inside the tag <system.web> the following code  <pages>       <controls>         <add tagPrefix="ajaxCTK" namespace="AjaxControlToolkit" assembly="AjaxControlToolkit"/>       </controls>     </pages>   Include TabContainer element First  include TabContainer element that is the section where all the tabs will be displayed. <ajaxCTK:TabContainer ID="TabContainerUpdate" runat="server"                 Height="800"                 CssClass="ajax__tab_style"> </ajaxCTK:TabContainer> Second per each tab include the following code corresponding to each ...

      Rails - Basic Steps III

      pValidations Validations are a type of ActiveRecord Validations are defined in our models Implement Validations Go to   root_app/app/models Open files  *.rb for each model Mandatory field validates_presence_of   :field Ex:   validates_presence_of    :title Classes The basic syntax is class MyClass        @global_variable                def my_method              @method_variable        end end Create an instance myInstance = MyClass.new Invoke a mehod mc.my_method class() method returns the type of the object In Ruby, last character of method define the behavior If ends with a question -> return a boolean value If ends with an exclamation -> change the state of the object Getter / Setter method def global_variable       return @global_variable end ...

      Python create package

      Create a root folder Create a sub-folder "example_pkg" that contains the funtionallity packaging_tutorial/ example_pkg/ __init__.py In the root folder create the following structure  packaging_tutorial/ example_pkg/ __init__.py tests/ setup.py LICENSE README.md in the setup.py contains the configuration of the packages your package is found by find_packages() import setuptools with open ( "README.md" , "r" ) as fh : long_description = fh . read () setuptools . setup ( name = "example-pkg-YOUR-USERNAME-HERE" , # Replace with your own username version = "0.0.1" , author = "Example Author" , author_email = "author@example.com" , description = "A small example package" , long_description = long_description , long_description_content_type = "text/markdown" , url = "https://github.com/pypa/sam...