一般的な Rails タスクに AI支援を利用する
RubyMine には、日常的な Rails 開発タスクを支援する組み込みの AI Assistant が用意されています。 繰り返しコードを手動で記述する代わりに、AI を使用して既存のコードを強化し、テストを生成し、IDE 内で直接小さな機能を迅速に実装できます。
このチュートリアルでは、AI Assistant を使用して、 Post リソースを使用してシンプルなアプリケーションを改善するための、いくつかの基本的な Rails 開発タスクを実行します。
チュートリアルの手順は以下のとおりです。
モデルの検証を追加する
テストを生成する
複数のファイルにまたがって小さな機能を実装する
始める前に
まず、 Post リソースを含むシンプルなアプリケーションから始めます。 これは、以降の手順で AI を使用して拡張および改善していくための、基本的な動作基盤となります。
シンプルな Rails アプリケーションを作成する
Ctrl を 2 回押して、
bin/rails generate scaffold Post title:string body:textを入力してください。Enter キーを押してジェネレーターを実行します。 RubyMine は、モデル、コントローラー、ビュー、ルート、テストファイルを作成します。 生成された出力は、実行ツールウィンドウで確認できます。
Ctrl を 2 回押して、
db:migrateと入力します。 ドロップダウンメニューから rake db:migrate を選択し、 Enter を押します。 Ctrl を 2 回押し、db :migrateと入力し、 Enter を押します。
呼び出された 「db:migrate」を実行する ダイアログでデフォルト設定のままにして、 OKです。 をクリックします。

これにより、 db フォルダーに development.sqlite3 データベースが作成されます。
データベースの設定が完了したため、アプリケーションを実行できます。
Ctrl を 2 回押して、アプリケーション名を入力し始めます。 候補リストから「実行構成」オプションを選択します。

生成された投稿ページが利用可能か確認するために、 http://127.0.0.1:3000/posts をブラウザーで開く。

AI を活用して Rails アプリケーションを改善しましょう
それでは、このアプリケーションに取り組み、AI Assistant を使ってその機能を拡張していきましょう。
検証を追加する
生成された Post モデルには、まだカスタムロジックが含まれていません。 検証機能を追加し、アプリケーションの動作を改善しましょう。
ファイル内で AI Assistant を直接使用する
エディターで app/models/post.rb ファイルを開きます。
クラス内にカーソルを配置し、AI Assistant(Ctrl+\ )を呼び出します。
AI に検証機能を追加するように依頼してください。 以下の例にあるプロンプトを使用できます。
Add validations for title and body. Body should have a minimum length of 10.
Enter キーを押して、コード変更の提案が表示されるまでお待ちください。
提案された変更点を確認してください。 更新後のモデルは以下のようになります。
class Post < ApplicationRecord validates :title, presence: true validates :body, presence: true, length: { minimum: 10 } endすべて受諾 をクリックして変更を適用し、ファイルを更新します。

アプリケーションは投稿を保存する前にユーザー入力を検証するようになりました。
ブラウザーでの検証結果を確認する
プロジェクトの実行構成を使用して Rails アプリケーションを起動するか、
bin/rails serverを実行してください。ブラウザーで http://127.0.0.1:3000/posts/new を開いてください。
タイトル と 本文 のフィールドに無効なデータを入力してください。 例: いずれかのフィールドを空欄にします。
投稿を作成する をクリックしてください。
アプリケーションは検証エラーを表示し、入力されたデータが有効になるまで投稿を保存しません。

AI を使用してテストを生成する
Post モデルに検証を追加したら、AI Assistant を使ってそれらのテストを作成できます。 今回は、ファイル内で AI Assistant を直接呼び出すのではなく、AI チャットを使ってみてください。
AI チャットでテストを生成する
右側のツールバーにある AI チャット アイコンをクリックしてください。
AI にモデル検証用の Minitest テストを生成するように指示します。 例:
Write Minitest tests for the Post model validations using ActiveSupport::TestCase. Cover the presence of title and body, and the minimum length of body.サブミット アイコンをクリックするか、Enter キーを押してください。

生成されたテストコードを確認し、コピーしてください。

Rails によって作成された test/models/post_test.rb ファイルを開き、その内容を生成されたコードに置き換えてください。
結果は以下のようなものになるかもしれません。
require "test_helper" class PostTest < ActiveSupport::TestCase test "is valid with a title and body" do post = Post.new(title: "Hello world", body: "This is a long enough body") assert post.valid? end test "is invalid without a title" do post = Post.new(title: nil, body: "This is a long enough body") assert_not post.valid? assert_includes post.errors[:title], "can't be blank" end test "is invalid without a body" do post = Post.new(title: "Hello world", body: nil) assert_not post.valid? assert_includes post.errors[:body], "can't be blank" end test "is invalid when body is too short" do post = Post.new(title: "Hello world", body: "too short") assert_not post.valid? assert_includes post.errors[:body], "is too short (minimum is 10 characters)" end end
生成されたテストを実行する
エディターまたは プロジェクト ツールウィンドウで test/models/post_test.rb ファイルを右クリックし、 実行 'Minitest: post_test.rb' を選択します。
RubyMine はテストを実行し、結果を 実行 ツールウィンドウに表示します。

アプリケーションの機能を拡張する
それでは、AI Assistant の力を借りて、アプリケーションの機能を拡張してみましょう。 この例では、作成した投稿のインデックスページにタイトル検索機能を追加します。
ページに検索機能を追加する
エディターで app/controllers/posts_controller.rb ファイルを開きます。
Open AI チャット。 app/controllers/posts_controller .rb ファイルがチャットに添付されていることを確認してください。 これにより、AI Assistant がより正確にコードを生成できるようになります。
ページにタイトルによる検索機能を追加するよう促すプロンプトを表示します。 コントローラーとビューの両方を更新する必要があることを必ず指定してください。 例:
Add search by title to the posts index page. Update: - the index action in the controller to filter posts by title using a query parameter - the index.html.erb view to include a search form with a text field and submit button Keep it simple and idiomatic Rails.
AI チャットで生成されたコードを確認してください。

次に、対応するファイルをエディターで開き、提案された変更を手動で適用します。
app/controllers/posts_controller.rb で、
indexアクションを更新してください。 以下のような表示になるはずです。class PostsController < ApplicationController before_action :set_post, only: %i[ show edit update destroy ] # GET /posts or /posts.json def index @posts = Post.all if params[:q].present? query = "%#{params[:q].downcase}%" @posts = @posts.where("LOWER(title) LIKE ?", query) end endapp/views/posts/index.html.erb に、生成された検索フォームを追加します。 以下のような表示になるはずです。
<%= form_with url: posts_path, method: :get do %> <%= label_tag :q, "Search by title" %> <%= text_field_tag :q, params[:q] %> <%= submit_tag "Search" %> <% end %>
結果を確認する
アプリケーションの実行。
ブラウザーで http://127.0.0.1:3000/posts を開いてください。
必要に応じて、異なるタイトルで複数の投稿を作成してください。

検索クエリを入力し、フォームを送信してください。 ページには、タイトルがクエリに一致する投稿のみが表示されます。

AI を使ってコードベースを移動する
AI Assistant は、プロジェクト内をすばやく移動したり探索したりする際にも役立ちます。 これは、未知コードや大規模なコードベースを扱う場合に特に便利です。
AI チャットを使用して関連コードを検索する
app/models/post.rb ファイルを開きます。
Open AI チャットで、このモデルがどこで使用されているかを調べるように依頼してください。 例:
Where is this model used in the project?応答を確認してください。 AI は、
Postモデルと連携するコントローラー、ビュー、ルートを指摘する場合があります。応答に表示されているファイルをクリックすると、エディターで開くことができます。
