Using form to create data, this section will cover the content: Create form, redirect user, render views and flash messages.1. Views PreliminaryEdit App/views/posts/index.html.erb This view file as follows:New_post is the new action's prefix, referring to [Ruby on Rails] and I learned the route map, but after it added the _path suffix.Then edit the App/views/posts/new.html.erb view file as follows:2. Bindin
view is available, because it is just a simple test, the model does not add, just change the action to the corresponding model of the mail or other.
Next, configure the Gmail SMTP server in the Config/application.rb file, such as (because Gmail needs fq to test, so in real development, the configuration of the SMTP server for Gmail can be placed in the Production.rb file, In test.rb and development.rb files with other mailboxes instead, I use the QQ SMTP server, as long as the QQ in the SMTP
Error
MySQL: Error: Query: not connected: Create Table 'schema _ migrations '('version' varchar (255) not null) engine = InnoDB
Solution;
Ruby is 1.8.6, rails is 2.2.3, MySQL is 5.1.51
This problem occurs because the libmysql. dll file in MySQL 5.1.3 and later cannot be properly connected to rails. Therefore, you only need to replace an old version of lib
The previous "[Ruby on Rails] and I learned hello World" mentioned that the route corresponding to the file is CONFIG/ROUTES.RBIn fact, we just added a line of code: Resources:p OSTsHowever, this code has multiple default routes, which can be viewed through rake routes, as follows:[Email protected]:/home/ywt/ror_tests/blog# rake routes Prefix Verb URI Pattern controller#action Posts ge
First, the new projectRails new App--skip-bundleModify Gemfile file after completion: Vim GemfileChange source to Taobao or Ruby-china.Add to this file: Gem ' Phantomjs 'Then run: Bundle installSo the project is new and completed.Second, generate PDFCreate a controller to add require ' PHANTOMJS ' to the head and add a get method for getting the PDF: get_pdfAdd the following code to this method:Phantomjs.base_dir = "/path/project_name/bin/phantomjs/"
ActiveRecord programming guide in Ruby on Rails, rubyonrails
Avoid modifying the default ActiveRecord (Table Name, primary key, and so on) unless you have a very good reason (such as a database not under your control ).Put the macro-style method before the class definition (has_many, validates, and so on ).
Preference has_expect: through is better than has_and_belongs_to_expect. Has_validation: through allo
The following issues have been encountered recently in a ROR Web project:
Products can be classified by class navigation browsing, can be divided into three types of a,b,c, three categories under the other categories, at the same time, the base class and its classification can be extended by the user. Horizontally, the main class can be extended by the user, and the user can extend it vertically.
Category information Store and Categories table:
Id:integer PRIMARY Key
Name:string category Nam
Redis Store is a toolkit designed for Ruby applications that supports fragmentation, master-slave copying, marshalling, and timeouts and namespaces. In addition, it is also very easy to use on the Ruby on Rails.How to use:for using the Redis Store on rails, first we need to add a portal to the Gemfile file
Gem ' redis-
| format.html Format.json {render json: @alljson} #这里会自动调用to_json end #render Json:lsjson #render JSON: {test: 1} End Ruby calls in JSON formatFirst JSON format NOTE:1, after the nodes to follow:, can not have spaces2, nodes, name these places cannot be enclosed in quotation marks, otherwise you cannot use Ruby to convert to JSON format.Simple_json = {nodes: [{name: ' Bob ', Age: ' $ ', awesome: ' true '}
1, Aliyun a key to install the Web-wide environment
Download one-click to install Web full-environment Sh.zip compression packUpload to the server, decompression, execute the script, detailed steps described here
$ mv sh.zip/home/tmp/ cd/home/tmp
$ unzip sh.zip
$ chmod-r 777 Sh cd SH
# arbitrary selection of a method to execute a script
# method One
$./install.sh
# Method Two
$/install_nginx_xxx.s
user model that contains first_name, last_name, nickname, where the nickname field is an array type. The following migration code creates the corresponding table:
Create_table:users do |t|
T.string:first_name
t.string:last_name
t.string:nicknames,: Array => true
end
And for this table, we have a simple model
Class User
We do not use the default value for the field, if we instance a user object, the code is like this.
John = User.create (: first_name => ' J
Up to now, should come to an ending, altogether has 29 essays, simply gather together an integer, then write the IDE environment. All the previous code was written by me with the editor scite in Ruby, and it was inconvenient, as rails developed, there are many Ides coming out, just to see the 6.0RC version of NetBeans offering a separate rails development environ
The essay briefly understands the use of rails ' test and test data, and this time to see how to add a test to a model for deletion and modification.
1. Or using the last written products_test.rb, modify the Test_turth method by the name Test_create and make the contents:
def test_create
assert_kind_of Product, @product
assert_equal 1, @product. ID
assert_equal "pragmatic Ver Sion control ", @product. Title
assert_equal" I to use version control ",
For example, if you have a users table, wait until the user ID array:Select ID from the users where age > 20;To implement the above SQL statements, there are several ways to do this in rails:
User.where (' Age > '). Select (: ID). Collect (:id)
User.where (' Age > '). Select (: ID). map (:id), select ID from ' Users ' where (age
User.where (' Age > '). Pluck (: ID), SELECT ' users '. ' ID ' from ' users ' where (age
The first t
Ruby on Rails Twitter ApplicationProgramThe interface is very simple.Twitter is a simple rails application.The application interface for querying information is called as a GET request, while the application interface for modifying, creating, or deleting information is a POST request. The command itself is the URL read by your program. Twitter will respond in HTT
In Ruby rails, if you want to save a property (or read a property), and you want to do something else when you save the property (or read a property)You can use the method that overrides the property's setup or reader.For example, a models table has a field called name, and you want to manipulate the name.Method One,Class Model Method Two,Similar to method one, facilitates After_find and Before_save methods
in the article The rest API in Ruby on Rails uses an example of creating your own online translator tool based on cloud Platform + cloud services , using Ruby's net::http to initiate HTTP requests to access language translation services on IBM Bluemix , Tip: End offile reachedThe code is as follows:Auth = "C9819718-4660-441c-9df7-07398950ea44:quvrjpqwsgox"; surl = "https://" + auth + "@gateway. watsonplatfo
Notes for Ruby on Rails migration: rubyonrails migration
Save schema. rb under version control.Use rake db: scheme: load to replace rake db: migrate to initialize an empty database.Use rake db: test: prepare to update the schema of the test database.
Avoid setting default data in the table. Use the model layer instead.
def amount self[:amount] or 0 end
However, the use of self [: attr_name] is consider
Converting an array to activerecord::relation is a common requirement. For example, in my project, the backup_projects return value of the array form is obtained from the method. In order to sort and page out this collection, I need to convert it to activerecord::relation form. The conversion method is as follows: Project = Project.backup_projects project.map{|i| i.id} @projects = Project.where (: id = = Project) Now @projects is the activerecord::relation type. Original: https://aakashsharmaror
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.