1. 程式人生 > 實用技巧 >Ruby 自學記錄 8

Ruby 自學記錄 8


In the other 7 lessons,I know the Ruby on Rails how to work using MVC pattern.
https://guides.rubyonrails.org/getting_started.html
In java,the generate model already have same tools to make it, like [MyBatis Generator].It will generate three layers in the project too.
And reading the Ruby stuff book,the exception will catch using :

begin
      //expression code
rescue
      puts "somethings wrong about that code"
end

Now,I wll update the "Article demo" with document.

https://guides.rubyonrails.org/getting_started.html#adding-some-validation


articles_controller.rb

class ArticlesController < ApplicationController
  # define a action the new page to create a new article [form]
  def new
    @article = Article.new
  end

  # index page will show all the articles
  def index
    @articles = Article.all
  end

    # after the article submit redirect to this show page
  def show
    @article = Article.find(params[:id])
  end

  # action create
  def create
    # render show the parameters
    # render plain: params[:article].inspect

    # we need to change the create action to use
    #
    ## params[:article] contains the attributes we're interested in
    @article = Article.new(article_params)
    ## saving the model in the database .save will return boolean
    # if the save saved redirectTo article page
    if @article.save
      redirect_to @article
    else
      # else render page new
      render 'new'
    end
  end

  private
  def article_params
    params.require(:article).permit(:title,:text)
  end
end

index.html.erb

<h1>Listing Articles</h1>

<h1>Hello, Rails!</h1>
<%= link_to 'My Blog', "https://www.cnblogs.com/ukzq" ,:target=>"_blank" %>
<br>
<%= link_to 'Create New Article', new_article_url %>

<table>
  <tr>
    <th>Title</th>
    <th>Text</th>
    <th></th>
  </tr>

  <% @articles.each do |article| %>
    <tr>
      <td><%= article.title %></td>
      <td><%= article.text %></td>
      <td><%= link_to 'Show', article_path(article) %></td>
    </tr>
  <% end %>
</table>

I'll come again when I'm full
to be continued