2011-07-25 18 views
0

これはおそらく非常に基本的な質問ですが、私は何をすべきか理解できません。初心者の質問 - データの問題を見つける

idから無関係なビューでユーザー名を探す必要があります。

私のアプリでは、私の注文は多くのマイルストーンを持っています。マイルストーンモデルとユーザーモデルとの間には関係はありませんが、各マイルストーンには関連ユーザーがあります。私のマイルストーン形式では、私が名前としてユーザーのidのとディスプレイをつかむために、次の使用:

<%= f.input :milestone_user, :as => :select, :multiple => false, :input_html => { :size => 1 }, :label => "", :collection => User.find(:all, :order => "name ASC") %> 

をしかし、私のショーのマイルストーンビューで、私はIDのみを見ることができます。名前を表示するために

、私がテストに、コンソールでこのような何かをしようとしていた。

@user = User.where(:id => 2) 

しかし、私は実行します。

@user.name 

ノーメソッドのエラーを取得します。次のように

私の質問は以下のとおりです。

  1. は、私はちょうどマイルストーンが同様のユーザーに属して作るべきでしょうか?
  2. そうでない場合は、ユーザー名を表示するにはどうすればよいですか?

- UPDATE -

私は、私の見解では、これを呼び出すことについて完全に失われたんです。私は下の提案を使用する場合:

milestone_userは整数
@user = User.find(:milestone_user) 

@user = User.find(2) 

実際に私たちが必要なもののようなものです。しかし、それは私にエラーを与える。非常に混乱...

- UPDATE 2 -

私のインデックスビューでは、私が実際に情報を表示するには、テーブルビルダーを使用しています。簡単にするために、私は余分なコードを削除しました。マイホーム#インデックスビューが含まれています

<% for milestone in orders %> 
    <li><%= link_to milestone.name, milestone_path(milestone.id), { 'data-href' => milestone.notes, :class => 'selector' } %></li> 
    <li><%= @users.name %> </li> 
<% end %> 

そして、私のホームコントローラ:

@milestones = Milestone.all 
    @users = User.find(params[:milestone_user]) 

答えて

1

@user = User.find(2)

UPDATE 2

最も簡単な方法で@user = User.where(:id => 2)を交換してください - あなたの家の#から@users = User.find(params[:milestone_user])を削除indexメソッドを使用して、ビューファイルを正しく追加してください:

<% for milestone in orders %> 
    <li><%= link_to milestone.name, milestone_path(milestone.id), { 'data-href' => milestone.notes, :class => 'selector' } %></li> 
    <li><%= User.find(milestone.user_id).name %> </li> 
<% end %> 
+0

ありがとうございました。これはうまくいった。これは、それをやっている最善の方法ですか? –

+0

これを翻訳してマイルストーンのIDを使用するにはどうすればよいですか? User.find(:milestone_id)とUserを試してみました。find(params [:milestone_id])でもどちらでも動作しません –

+0

そのIDでレコードを検索したい場合は、その方法が最適です。 User.find(params [:milestone_user])を使用してください。 – Hck