私は完全なRails初心者ですし、助けていただければ幸いです。ActiveModel :: AttributeError rails 3
[ユーザー]テーブルから別のソースを選択しようとすると、現在エラーが表示されます。だから、SQLのクエリはかなり簡単です。このような何か:私もこれを試してみた
<%= f.select :source, User.find(:all, :select => "source") %>
:
select distinct source from users;
または
select source from users group by source;
問題は、私の ".erb" ファイルで、私はこれを持っているということです
<%= f.select :source, User.select(:source).group(:source) %>
この問題が発生していますセージ:明らかに
missing attribute: first_name
は、私がFIRST_NAMEを選択していないんだけど、私は他の誰かが書いた私の "to_s" 方法では、戻り値は
full_name.blank? ? email.gsub(/(.).*(.)@/,'\1..\[email protected]').gsub(/@(.).*(.)\.([^.]+)/,'@\1..\2.\3') : full_name
であることに気づいた:
def full_name
"#{self.first_name} #{self.last_name}".strip
end
だから、どこかで暗黙のうちに "to_s"が呼び出されていて、first_name属性が見つからないようです。
私のto_sメソッド(コードベースで広く使用されています)を変更する以外に、ユーザーテーブルから別のソースのリストを選択する方法はありますか?
これは私が必要としているもののように見えます(テスト時に動作します)。何が起こっているのか、おそらくこれが元のコードスニペットと比べてなぜ機能するのかを少し説明できますか? – Ramy
@Ramy選択ヘルパーは、 '[[" red "、1]、[" blue "、2]、[" green "、3]]のような2つのレベルの配列で動作します。内側の配列はselect要素に表示されるラベルテキストで、2番目の値はフォームで送信される選択値に対して行われる値で、 'map'は配列を生成し、項目私たちは内側の配列を押しています。 –
@Ramyであり、もう1つの問題はクエリが1つのカラムを返すだけで、 'name'というカラムがないので' select'ヘルパーが少なくとも2つのカラム、 'name'と' id'を待っているということです。 'firs_name'カラムをデフォルトのカラム' name'に最も近いカラムで検索します。 –