Tutorial by Examples: b

This helper validates that the attribute's value is unique right before the object gets saved. class Account < ApplicationRecord validates :email, uniqueness: true end There is a :scope option that you can use to specify one or more attributes that are used to limit the uniqueness check: ...
This helper validates that the specified attributes are not empty. class Person < ApplicationRecord validates :name, presence: true end Person.create(name: "John").valid? # => true Person.create(name: nil).valid? # => false You can use the absence helper to validate th...
class Person < ApplicationRecord validates :name, length: { minimum: 2 } validates :bio, length: { maximum: 500 } validates :password, length: { in: 6..20 } validates :registration_number, length: { is: 6 } end The possible length constraint options are: :minimum - The attribut...
Unlike Big-O notation, which represents only upper bound of the running time for some algorithm, Big-Theta is a tight bound; both upper and lower bound. Tight bound is more precise, but also more difficult to compute. The Big-Theta notation is symmetric: f(x) = Ө(g(x)) <=> g(x) = Ө(f(x)) An ...
First: The path structure If you don't have it you need to create the middleware folder within your app following the structure: yourproject/yourapp/middleware The folder middleware should be placed in the same folder as settings.py, urls, templates... Important: Don't forget to create the ini...
Boolean logic expressions, in addition to evaluating to True or False, return the value that was interpreted as True or False. It is Pythonic way to represent logic that might otherwise require an if-else test. And operator The and operator evaluates all expressions and returns the last expressi...
class PostsController < ApplicationController before_action :set_post, only: [:show, :edit, :update, :destroy] def index @posts = Post.all end def show end def new @post = Post.new end def edit end def create @post = Post.new(post_par...
OnClick Listener: @OnClick(R.id.login) public void login(View view) { // Additional logic } All arguments to the listener method are optional: @OnClick(R.id.login) public void login() { // Additional logic } Specific type will be automatically casted: @OnClick(R.id.submit) publi...
Fragments have a different view lifecycle than activities. When binding a fragment in onCreateView, set the views to null in onDestroyView. Butter Knife returns an Unbinder instance when you call bind to do this for you. Call its unbind method in the appropriate lifecycle callback. An example: pub...
Similar to the built-in function zip(), itertools.zip_longest will continue iterating beyond the end of the shorter of two iterables. from itertools import zip_longest a = [i for i in range(5)] # Length is 5 b = ['a', 'b', 'c', 'd', 'e', 'f', 'g'] # Length is 7 for i in zip_longest(a, b): x...
explode and strstr are simpler methods to get substrings by separators. A string containing several parts of text that are separated by a common character can be split into parts with the explode function. $fruits = "apple,pear,grapefruit,cherry"; print_r(explode(",",$fruits))...
Example for continue for i in [series] do command 1 command 2 if (condition) # Condition to jump over command 3 continue # skip to the next value in "series" fi command 3 done Example for break for i in [series] do command 4 if (condi...
Python lists are 0-based i.e. the first element in the list can be accessed by the index 0 arr = ['a', 'b', 'c', 'd'] print(arr[0]) >> 'a' You can access the second element in the list by index 1, third element by index 2 and so on: print(arr[1]) >> 'b' print(arr[2]) >> '...
Open the Settings or Preferences dialog: On Windows or Linux, select File > Settings from the main menu. On Mac OSX, select Android Studio > Preferences from the main menu. Navigate to Build, Execution, Deployment > Compiler. In the text field next to Command-line Options, enter...
The HBox and VBox layouts are very similar, both lay out their children in a single line. Common characteristics If an HBox or a VBox have a border and/or padding set, then the contents will be layed out within those insets. They lay out each managed child regardless of the child's visible proper...
The BorderPane is separated into five different areas. The border areas (Top, Right, Bottom, Left) have preferred sized based on their content. By default they will only take what they need, while the Center area will take any remaining space. When the border areas are empty, they do not take up ...
When Intel defined the original 8086, it was a 16-bit processor with a 20-bit address bus (see below). They defined 8 general-purpose 16-bit registers - but gave them specific roles for certain instructions: AX The Accumulator register. Many opcodes either assumed this register, or were faster i...
When Intel produced the 80386, they upgraded from a 16-bit processor to a 32-bit one. 32-bit processing means two things: both the data being manipulated was 32-bit, and the memory addresses being accessed were 32-bit. To do this, but still remain compatible with their earlier processors, they intro...
The first four 16-bit registers could have their upper- and lower-half bytes accessed directly as their own registers: AH and AL are the High and Low halves of the AX register. BH and BL are the High and Low halves of the BX register. CH and CL are the High and Low halves of the CX register. D...
AMD is a processor manufacturer that had licensed the design of the 80386 from Intel to produce compatible - but competing - versions. They made internal changes to the design to improve throughput or other enhancements to the design, while still being able to execute the same programs. To one-up I...

Page 72 of 385