Rails startup

==how to start==
rails new  timeline -d postgres
#1.为新的项目添加路由"config/routes.rb" 
	resources :articles

#2.新增一个控制器
$ bin/rails g controller articles

#3.为控制器新增一个new方法  "app/controllers/articles_controller.rb "
	  def new
	  end
#4.为该new方法添加对应的new视图"app/views/articles/new.html.erb"
	<h1>New Article</h1>
#5.改变new的视图使得它可以显示为一个表单"app/views/articles/new.html.erb ",这里虽然建了表单
<%= form_for :article,url: articles_path do |f| %>	#表单构造器是 form_for
          									#调用 form_for 方法时,要指定一个对象 "article"
    		#表单 action 属性可使用 form_for 方法的 :url 选项,articles_path 通过rake routes 查看,发起的是POST请求
  <p>
    <%= f.label :title %><br>
    <%= f.text_field :title %>	
  </p>
 
  <p>
    <%= f.label :text %><br>
    <%= f.text_area :text %>
  </p>
 
  <p>
    <%= f.submit %>
  </p>
<% end %>
#6.上面虽然有处理表单到create页面,但是没有该方法,无法对new POST过来的数据进行处理,所以,控制器新增create方法
,“app/controllers/articles_controller.rb“
	def create
	end
#7.这时候提交表单,会提示找不到模板,即create的模板
def create
	render plain: params[:article].inspect
end
create提交过来的内容可以通过”render plain: params[:article].inspect“查看。
render 方法接受一个简单的 Hash 为参数,这个 Hash 的键是 plain,对应的值为 params[:article].inspect。
params 方法表示通过表单提交的参数,返回 ActiveSupport::HashWithIndifferentAccess 对象,可以使用字符串或者 Symbol 获取键对应的值。
#8.上面看到了表单成功提交过来的数据,那么数据往哪里存呢?建个articles模型吧。
$ bin/rails generate model Article title:string text:text
新生成了数据库迁移文件,需要运行迁移文件来完成迁移。
$ bin/rake db:migrate
#9.在控制器中保存数据,” app/controllers/articles_controller.rb “
def create
  @article = Article.new(params[:article])			#params[:article] 要获取的属性
  @article.save					#@article.save 的作用是把模型保存到数据库中,保存完后转向 show 动作,这里木有写
  redirect_to @article
end
#10.create 方法修改,要明确地告知 Rails 哪些参数可在控制器中使用
def create
  @article = Article.new(article_params)
 
  @article.save
  redirect_to @article
end
private
  def article_params
    params.require(:article).permit(:title, :text)
  end
#11.显示文章。控制器添加show方法
def show
  @article = Article.find(params[:id])	# Article.find 方法查找想查看的文章,传入的参数 params[:id] 会从请求中获取 :id 参数
end
#10.给show添加视图,”app/views/articles/show.html.erb“
<p>
  <strong>Title:</strong>
  <%= @article.title %>
</p>
<p>
  <strong>Text:</strong>
  <%= @article.text %>
</p>
#11. 列出所有的文章,控制器中新增index方法
def index
  @articles = Article.all
end
#12.列出文章,新增index的视图
<h1>Listing articles</h1>
<table>
  <tr>
    <th>Title</th>
    <th>Text</th>
  </tr> 
  <% @articles.each do |article| %>
    <tr>
      <td><%= article.title %></td>
      <td><%= article.text %></td>
    </tr>
  <% end %>
</table>

#12.新增指向内容的页面


你可能感兴趣的:(Rails startup)