samples = Sample.find_by_sql(["select * from samples inner join others on samples.id = others.sample_id ...])
ってやると、joinする側とされる側に同じ名前のカラムがあると、うまくデータが取れないことがあるみたいです。
例えば2つのテーブルのカラムにidというカラムが含まれている場合、どっちのidなの?ってことで分からないみたいですね。
ちゃんと、samplesテーブルのデータですよということを明記して
select samples.* from samples inner join others ...
と取得するテーブル名を明記するようにしましょう。