Rails - 一个视图中的2个模型(属于另一个视图的模型)

时间:2013-10-01 19:30:42

标签: ruby-on-rails ruby forms view associations

有几个问题和答案,除了每次模型视图使用与我需要的相反时。 就我而言,我想在一个视图中显示3个模型。 Post belongs_to UsernameUsername has_many Posts。我拥有的第三个模型是Category has_many Posts,它通过集合选择正确显示。 该视图是Post model,_ 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帖子的用户名模型的名称属性? (到目前为止,我只能访问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

username.rb

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

的routes.rb

resources :usernames
resources :categories
resources :posts

请帮忙!

1 个答案:

答案 0 :(得分:0)

accepts_nested_attributes_for :username  
在你的post.rb中

但是,您不希望将帖子自动分配给current_user ?????