私は当時、開発者としての自分自身を改善するために 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 開発も読んでいますが、それまでの間、少し試してみたいと思います。
ありがとう