3

私は当時、開発者としての自分自身を改善するために Ruby on Rails を勉強していたので、フレームワークで遊ぶために自分の php Web サイトを書き直し始めました。
基本的に、サイトはソース コード アグリゲーターであるため、言語モデルとソース モデルがあります。

class Language < ActiveRecord::Base
  has_many :sources
end

class Source < ActiveRecord::Base
  belongs_to :language
end

ソース テーブルの language_id 外部キーにバインドされます。
ウェブサイトの主なルートの1つは次のとおりです。

get ':language_name/:source_name.html' => 'source#show'

たとえば、次のようになります。

/ruby/discover-if-a-number-is-prime.html

SourceController で、次のように宣言しました。

class SourceController < ApplicationController
  def show
    language_name, source_name = params[:language_name], params[:source_name]
    @language = Language.find_by_name(language_name) || not_found
    @source = Source.find_by( name: source_name, language_id: @language.id ) || not_found
  end
end

これら 2 つのクエリを実行する賢い方法はありますか?
多分何かのような

@source = Source.find_by_name_and_language_name( source_name, language_name ) || not_found

これがばかげた質問でしたら申し訳ありません。Rails 3.2 を使用したアジャイル Web 開発も読んでいますが、それまでの間、少し試してみたいと思います。
ありがとう

4

2 に答える 2