0

これにはいくつかの質問と回答がありましたが、モデル ビューが必要なものとは反対のものを使用するたびに例外がありました。私の場合、1 つのビューに表示したい 3 つのモデルがあります。 Post belongs_to UsernameUsername has_many Posts。私が持っている 3 番目のモデルはCategory has_many Posts、コレクションの選択によって正しく表示される です。ビューはPostモデル、_form.html.erbです

<%= form_for(@post) do |f| %>
  <%= f.label :equipment %><br />
  <%= f.text_field :equipment %><br />
  <%= f.label 'Serial number' %><br />
  <%= f.text_field :serial_num %><br />
  <%= f.label :category %><br />
  <%= collection_select(:post, :category_id, Category.all, :id, :name, prompt: true) %>

  <%= f.fields_for :usernames do |user| %>
    <%= user.label :username %><br />
    <%= user.text_field :name %>
  <% end %>

<% end %>

それが私がやりたいことです-username.nameを表示します(投稿ではFK username_idがあります)。上記のコードfields_forは機能せず、何も表示されません。私が見つけたこの質問に対する答えはすべてモデルのビューにありますが、モデルhas_manyのビューでこれが必要belongs_toです。では、投稿ビューで has_many Posts を持つ Username モデルの name 属性にアクセスするにはどうすればよいでしょうか? (これまでのところ、Post モデルにある外部キーにしかアクセスできません)。

post.rb

class Post < ActiveRecord::Base
  attr_accessible :category_id, :equipment, :serial_num, :username_id
  belongs_to :category
  belongs_to :username
  validates :username_id, :presence => true
end

ユーザー名.rb

class Username < ActiveRecord::Base
  attr_accessible :name
  has_many :posts
  validates :name, :presence => true
end

ルート.rb

resources :usernames
resources :categories
resources :posts

助けてください!

4

1 に答える 1