頁面框架與分頁設定
$ rails g scaffold namecard name:string tel:integer address:string company:string
$ rake db:migrate
$ rails server -p $PORT -b $IP
Gemfile.rb
#下載頁面套件
gem 'bootstrap-sass', '~> 3.3.4'
#下載分頁套件
gem 'kaminari'
gem 'bootstrap-kaminari-views'
bootstrop頁面
在各檔案下,加上設定
/app/assets/stylesheets/application.scss
@import "bootstrap-sprockets";
@import "bootstrap";
/app/assets/javascripts/application.js
//= require bootstrap-sprockets
/app/views/layouts/application.html.erb
<div class="container">
<%= yield %>
</div>
/app/views/namecards/index.html.erb
<table class='table table-hover'>
<%= link_to 'New', new_namecard_path, class:'btn btn-success btn-lg/xs' %>
設定button樣式
btn-success:底色為綠
btn-lg/xs:button大/小
新增一個欄位,email
$ rails g migration add_email_to_namecard
/db/migrate (add_email_to_namecard)
add_column :namecards, :email, :string, limit:100
存檔
$ rake db:migrate
剛新增的欄位,只有資料庫有,在html上,是不會出現的,所以要改。
/app/views/_form.html.erb
輸入頁要加
<div class="field">
<%= f.label :email %><br>
<%= f.text_field :email %>
</div>
/app/views/index.html.erb
首頁要加
<th>email</th>
<td><%= namecard.email %></td>
/app/views/show.html.erb
顯示頁要加
<p>
<strong>Email:</strong>
<%= @namecard.email %>
</p>
在views下面加完後,頁面上可以看到這個欄位,但是新增資料後,依然無法看到資料,因為必須還要設定controller。
/app/controllers/namecards_controller.rb
這邊加上:email後,在頁面上才可以看到資料。
def namecard_params
params.require(:namecard).permit(:name, :tel, :address, :company, :email)
end
Kaminari分頁
在controller中改寫.page(params[:page]).per(3)就可以套用
/app/controllers/namecards_controller.rb
def index
@namecards = Namecard.page(params[:page]).per(3)
end
增加分頁按鈕,並美化
/app/views/index.html.erb
<%= paginate @namecards, :theme => 'twitter-bootstrap-3' %>
render partical
render 'form'=>_form.html.erb
沒有留言:
張貼留言