0

相互にやり取りしたいモデルが 3 つあります。

加瀬・人と・会社。

私は(私が思うに)関係を正しくセットアップしました:

class Kase < ActiveRecord::Base
#HAS ONE COMPANY
has_one :company

#HAS MANY PERSONS
has_many :persons


class Person < ActiveRecord::Base
belongs_to :company

class Company < ActiveRecord::Base
has_many :persons
def to_s; companyname; end

次のように、create new Kase ビューと create new Person ビューに選択フィールドを配置しました。

<li>Company<span><%= f.select :company_id, Company.all %> </span></li>

上記のすべては、会社内の会社名が動的に入力されたドロップダウン メニューを正常に表示します。

私がやろうとしているのは、会社レコードの連絡先を kase と person show.html.erb 内に表示することです。

たとえば、「Acme, Inc.」という会社があるとします。「Random Case」という名前の新しい Kase を作成し、新しいケースの作成ページ「Acme, Inc.」内で選択します。会社のドロップダウンメニューから。次に、「ランダム ケース」show.html.erb に「Acme, Inc. Mobile」などとともに「Acme, Inc」を表示したいと思います。

これが誰かにとって意味があることを願っています!

ありがとう、

ダニー

編集:kases_controller

def show
@kase = Kase.find(params[:id])

respond_to do |format|
  format.html # show.html.erb
  format.xml  { render :xml => @kase }
  format.pdf { render :layout => false }

  prawnto :prawn => { 
             :background => "#{RAILS_ROOT}/public/images/jobsheet.png",

             :left_margin => 0, 
             :right_margin => 0, 
             :top_margin => 0, 
             :bottom_margin => 0, 
             :page_size => 'A4' }
end   end
4

2 に答える 2

3

質問に投稿した内容に基づいて、モデルの関連付けが不完全だと思います。

class Kase < ActiveRecord::Base
  has_one :company
  has_many :people # Rails should handle the correct plural here
end

class Company < ActiveRecord::Base
  has_many :people
  belongs_to :kase
end

class Person < ActiveRecord::Base
  belongs_to :company
  belongs_to :kase
end

関連付けを正しく設定すると、特定のケースの会社の属性にアクセスできます。

kase.company.name
kase.company.mobile

—または特定の人物の場合:

person.company.name
person.company.mobile

個人のケースを介して会社にアクセスすることもできます。

person.kase.company.name # etc...
于 2010-04-26T15:33:40.617 に答える
0

私の理解が正しければ、ショー ファイルには携帯電話番号を表示する次のようなものが含まれます。

# in app/views/kases/show.html.erb
<h1><%=h kase.name %></h1>

<h2>Company Information</h2>
<ul>
  <li>Company Name: <%=h kase.company.name %></li>
  <li>Company Mobile: <%=h kase.company.mobile_phone %></li>
</ul>

試してみてください。それだけで十分かどうかを確認してください。

于 2010-04-26T15:26:57.683 に答える