2011-07-04 6 views
0

多分これは物事について間違った方法です - あなたがそれらを持っている場合、私はよりよい提案を受け入れるでしょう!Formtastic Collection_select関連のないモデル

私たちは単純な発注システムを持っています - 発注には多くのマイルストーンがあり、各マイルストーンは発注に属しています。さておき、各マイルストーンは、ユーザーに割り当てられていますが、私は私のユーザーはまた、注文を所有するように2つの間の関係を作成したくありませんでした...私のマイルストーンの形で

、私は以下の持っているとして

<%= semantic_form_for([@order, @milestone]) do |f| %> 
..... 
<div class="field"> 
    <%= f.label :milestone_user %><br /> 
    <%= f.input :milestone_user, :as => :radio, :collection => User.find(:all, :order => "name ASC") %> 
    </div> 
.... 
<%= f.submit %> 
<% end %> 

これはすばらしく、ラジオボタンとしてレンダリングされたユーザーを見ることができます。

問題は、保存すると、名前の代わりにユーザーIDが残ってしまうことです。

これを名前に転送するにはどうすればよいですか?

ありがとうございます!

答えて

0

あなたのモデルで正しい関連を持っている場合は、次の動作するはずです(単にビューテンプレートで、昨日それをしなかった)

place.cplace.name 

、私のモデルで:

class Place < ActiveRecord::Base 
    attr_accessible :name, :cplace_id, :cmoney_id, :copen_id, :description 

    belongs_to :user 
    belongs_to :cplace 
... 
end 

class Cplace < ActiveRecord::Base 

    attr_accessible :name, :description 

    has_many :places 
... 
end 

だから、たとえPlaceモデルの私のcplace(Category place)フィールドの名前はcplace_idで、名前やその他のフィールドは

place.cplace.name 
で救うことができます

ここでplaceはPlace ...インスタンスを含むインスタンス変数です...

ほしいと思っています。

+0

これは私のユーザーがマイルストーンを所有していないため、探しているものではありません。 –

+0

ちょっと遅れて。しかし...あなたはparamsから取得したIDを取得して、Milestone.find(params [:id]).nameのようなものを使用することができます – juanm55

関連する問題