TIS ENGINEER NOTE

ITエンジニアのためのキャリア向上ノウハウブログ

プログラミング

Ruby on Railsの『こんな時どうするんだっけ』まとめ【随時更新】

更新日:

Ruby on Railsで開発を行っていると

  • この操作ってどうやるんだっけ?
  • この機能を実装したいときはどのメソッドを使えばいいんだっけ?
  • このエラー見たことあるけど、どうやって対応したんだっけ?

などと何度も同じことを調べてしまうことが多いので、自分の備忘録がてら、Railsの基本操作・トラブルシューティングについてまとめていこうと思います。

コマンド

プロジェクト作成

rails new hello_app

bundleスキップ

rails new app-name --skip-bundle

MySQLを使用して作成

rails new app-name --skip-bundle -d mysql

新規コントローラー作成

rails generate controller Users

※コントローラー名は複数形

複数単語の場合

rails generate controller UserCategories

※generateするときのコントローラー名はキャメルケーススネークケースのどちらでも問題ないようです。

いずれで実行してもコントローラーファイル名はスネークケース、クラス名はキャメルケースに統一されます。

自分は統一した方が迷わず済むので、コントローラー・モデルともにキャメルクラスでコマンドを実行しています。

新規モデル作成

rails generate model User name:string email:string

※モデル名は複数形

複数単語の場合

rails generate model UserCategory name:string email:string

※複数単語命名についてはコントローラーと同様

コントローラー

各アクションの前に処理を実行

before_action :article_user_check

特定のアクションのみ

before_action :article_user_check, only: :show
複数
before_action :article_user_check, only: [:edit,:show,:update,:destroy]

特定のアクションを除外して実行

before_action :article_user_check, except: :show
複数
before_action :article_user_check, except: [:edit,:show,:update,:destroy]

データ作成

※ユーザーの新規記事(article)を作成

@article= current_user.articles.build(article_params)
if @article.save
    flash[:success] = "記事を作成しました"
    redirect_to @article
else
    render 'articles/new'
end

ストロングパラメータ設定

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

データ更新

@article= Article.find(params[:id])

if @article.update_attributes(article_params)
    flash[:success] = "記事を更新しました"
    redirect_to articles_url
else
    render 'edit'
end

 

モデル

1対多のリレーション

has_many :articles,dependent: :destroy
belongs_to :user

多対多のリレーション

※記事にカテゴリーを設定

has_many :categories, through: :article_categories
has_many :article_categories, dependent: :destroy
has_many :articles, through: :article_categories
has_many :article_categories, dependent: :destroy
belongs_to :article
belongs_to :category

値が空であることを禁ずるバリデーション

validates :user_id,presence:true

値の文字数を制限するバリデーション

最大文字数

validates :title, length: { maximum: 30 }

最小文字数

validates :title, length: { minimun: 30 }

 

ビュー

新規登録画面

<%= form_for(@article) do |f| %>
    <%= f.label :title %>
    <%= f.text_field :title,placeholder:"記事の名称" %>
    <%= f.label :body %>
    <%= f.text_area :body,placeholder:"記事の本文" %>
    <%= f.submit "記事作成" %>
<% end %>

リンク

<%= link_to “記事一覧”, articles_path %>


<%= link_to articles_path do %>
    記事一覧
<% end %>

よく読まれている記事

エンジニア入門

2019/4/15

最も効率の良いプログラミング学習フロー

こんにちは、フリーエンジニアのてぃすです。 エンジニアの需要が拡大し、売り手市場となったことから、プログラミングを学習し始めた人、学習してみたいという人がかなり増えてきています。 これからの時代プログラミングを学習することは、豊かな人生を目指す上で非常に強力なスキルとなってきます。 今回はプログラミング初心者の方々に向けて、最も効率的なプログラミングの学習方法を解説していきます。 はじめに この学習フローでは、遊びのメカニズムを利用して進めていきます。 どういうことでしょうか。説明していきます。 遊ぶ感覚 ...

続きを読む

office

エンジニア独立

2019/5/29

エンジニア歴2年の僕がレバテックフリーランスでフリーランスを目指してみた

正社員エンジニアからフリーランスエンジニアへの方向転換の一環として、業界最大手であるレバテックフリーランスの個人面談に出向いてきたので、その感想を書いていこうと思います。 フリーランスというと知識・経験・人脈を兼ね備えたスーパーエンジニアしかなれない存在だと思っている人も少なくありません。 しかし最近では今回紹介するレバテックフリーランスや以前の記事で紹介したギークスジョブなどといったエージェントを利用すれば、僕のように経験の浅いエンジニアでも十分に目指せる働き方となっています。 この記事が現在働いている ...

続きを読む

エンジニア独立

2019/4/28

月80万円も目指せるフロントエンドエンジニアの魅力

どうも、フリーランスエンジニアのてぃすです。 ITエンジニアといえば、JavaやRubyを駆使するサーバーサイドエンジニアの方がイメージとして強いですよね。 ただWeb系で活躍するエンジニアには他にもフロントエンドエンジニアという働き方があります。 今日はこのフロントエンドエンジニアについて、 よくある誤解 どれくらい稼げるのか どうすればなれるのか 将来性 キャリアアップのコツ などの観点からお話していきます。 フロントエンドエンジニアとは フロントエンドエンジニアとは、簡単に言えばユーザーが操作する画 ...

続きを読む

エンジニア独立

2019/5/29

パーソルテクノロジースタッフの派遣でエンジニア歴2年の僕が時給2000円を余裕で超えた話

今いる会社を辞めることとなり、今後のエンジニアとしての身の振りを検討中のてぃすです。 今回とある派遣会社にて、業務経験なしのRuby on Railsの案件を紹介してもらい、その時給が2000円を超えていました。 月給換算したら1,2年目の正社員の給与を余裕で超えてきます。派遣という働き方の印象がガラッと変わる体験をしました。 今回はエンジニア歴2年の僕にそんな素敵な待遇を提供してくれたパーソルテクノロジースタッフについて、実体験を交えて語っていこうと思います。 エンジニア派遣の「パーソルテクノロジースタ ...

続きを読む

エンジニア独立

2019/4/15

ITエンジニアの働き方比較(正社員/派遣/フリーランス)

最近ではITエンジニアの需要が激増し、特にプログラマーを目指す人が増えてきました。 今の時代、プログラマーをはじめとするITエンジニアを仕事として選ぶことは賢明かつ的確な判断と言えるでしょう。 その一方で、世間ではプログラマーの不遇が叫ばれていたり、IT土方などの蔑称で呼ばれていたりします。 それは働き方の選択を誤っているプログラマーがあまりに多いことが原因となっています。 稼げる市場であるということは、依頼主と技術提供者の間に入って、不当に利益を得ようとする存在が増えることに繋がります。そういった存在に ...

続きを読む

-プログラミング
-,

Copyright© TIS ENGINEER NOTE , 2023 All Rights Reserved Powered by AFFINGER5.