個人アプリ作成が楽しい作業。
反面、学ぶ内容が増え続けるので大変です。
今日はつくばへ戻るので早めに失敬。
8時に渋谷を出ても家に着くのは10時半過ぎ。遠いわ。
rails
form_for
クラス等の属性を付与する場合、インスタンスに続けて html: {class: ‘col s12’} のように入れる。
<%= form_for(resource, as: resource_name, url: session_path(resource_name), html: {class: 'col s12'}) do |f| %>
html: {class: 'col s12', id: 'hoge'}
ここの要素に属性をつける場合はこう。
<%= f.submit "Log in", class: "hogehoge" %>
submit等のボタンはinput要素なのでインライン要素。
つまり中央寄せする場合は親要素にtext-align: center;を設定する。
jqueryを使う方法
gemファイルに以下を記入してbundle install
gem 'jquery-rails'
spp/asset/javascript/application.jsに以下を追記
//= require jquery
//= require jquery_ujs
renderメソッド
<% render partial: "hoge", collection: @hogehoges %>
↑↓は同義。collection記法であれば大半を省略できる。
<% render @hogehoges %>
collection記法の省略は、インスタンス名sと_インスタンス.html.erbの規則であれば省略可能で、部分テンプレート内ではインスタンス名(単数形)が用いられる。
この規則は、@hogehogesの文字列由来ではなく、@hogehogesのモデルに由来する。
このため、下記のような記載では、参照される部分テンプレートや部分テンプレート内のインスタンス変数名はモデル由来のものが利用される。
これは規約なのでどうしようもない。
def index
@hogehoges = Post.all.page(params[:page]).per(5)
end
posts/index.html.erb
<%= render @hogehoges %>
posts/_post.html.erb
<%= post.text %>
部分テンプレート?
投稿時と編集時で同じフォームを使いまわそうとした際に、下記のようにしても動く。
変数を渡していないのにフォーム上にeditしたい値が埋まった状態で表示されるのはなぜ???
edit.html.erb
<%= render partial: "form"%>
コントローラ
def edit
@post = Post.find(params[:id])
end
_form.html.erb
<%= form_for(@post, html:{class: "col s12"}) do |f| %>
<div class="input-field col s12">
<%= f.text_area :text, autocomplete: "text" %>
<%= f.label :text , for: "textarea1"%>
</div>
<% end %>
データの型の変更
rails g migration change_datatype_変更したいカラム名_テーブル名
この表記をよく見るが、結局できるのは空のmigrationファイル。
class ChangeDatatypeUserIdPosts < ActiveRecord::Migration[5.2]
def change
change_column :posts, :user_id, :integer
end
end
change_colomnでテーブル名、カラム名、型を指定することで変更する。
migrationファイルができたらrake db:migrateして終了
chat_space
railsのバージョンを指定してプロジェクトを作成
rails _5.0.7.2_ new project名 -d mysql
インストールされているGemのバージョンが競合するとエラーが出る。
一旦アンイストールして再インストールする。
gem uninstall gem名
gem install gem名 -v 1.1.1
slackとgithubの連携
slackのチャンネルで以下を入力して連携を許可
/invite @GitHub
連携項目を追加する
デフォルトでは以下
issues(イシュー) pulls(プル) statuses(ステータス) commits(コミット) deployments(デプロイ) public(パブリック)
追加されない項目は以下なので必要に応じて追加する
reviews(レビュー) comments(コメント) branches(ブランチ)
/github subscribe githubのユーザー名/リポジトリ名 追加したい機能
rails gで不要なファイル群を作成しないように設定変更
config/application.rbに以下を記述
module ChatSpace
class Application < Rails::Application
config.generators do |g|
g.stylesheets false
g.javascripts false
g.helper false
g.test_framework false
end
end
end
コメント