我是Ruby on Rails的新手。我正在關注Rails Guides教程。我已經構建了一個基本表單,它將title
和text
作爲輸入並存儲在數據庫中。 這裏是我的代碼:在Rails中路由
ArticlesController:
class ArticlesController < ApplicationController
def new
end
def create
@article = Article.new(article_params)
@article.save
redirect_to @article
end
def show
@article = Article.find(params[:id])
end
private
def article_params
params.require(:article).permit(:title, :text)
end
end
的routes.rb:
Rails.application.routes.draw do
get 'welcome/index'
root 'welcome#index'
resources :articles
end
new.html.erb(形式):
<h1>New article</h1>
<%= form_with scope: :article, url: articles_path, local: true do |form| %>
<p>
<%= form.label :title %><br>
<%= form.text_field :title %>
</p>
<p>
<%= form.label :text %><br>
<%= form.text_area :text %>
</p>
<p>
<%= form.submit %>
</p>
當我點擊表單的提交按鈕後,我被帶到show
視圖,在那裏顯示錶單的數據。但我無法理解這是怎麼發生的?我沒有提到要渲染show.html
視圖,那麼Rails如何理解我必須呈現哪個視圖?我對此有點困惑。
注:我來自一個Django的背景,所以我將如何實現在Django路由是由我urls.py
確定以該路徑所需的方法(從views.py
)。然後我會渲染在views.py
中的方法中定義的模板。
redirect_to的語法糖相應顯示動作的'資源:文章「負責路由到適當的控制器/方法。至於渲染'show.html',如果控制器在視圖中找到'#method.htmll'文件,它將自動渲染該文件。 – hjpotter92