代码之家  ›  专栏  ›  技术社区  ›  msmith1114

rails:association.each在末尾显示所有关联?

  •  0
  • msmith1114  · 技术社区  · 5 年前

    我有一个非常简单的用户/帖子控制器。一 User 有许多 Posts 在用户的“显示”页面上,他们可以发布帖子(类似于“Facebook”状态)。无论如何,这里是我的控制器和视图(每个控制器现在只有一个操作,因为我刚开始写它:

    user_controller

    def show
        @user = User.find(params[:id])
        @post = Post.new
        @posts = @user.posts
    end
    

    posts_controller

      def create
        user = current_user
        @post = user.posts.new(post_params)
        @post.save
        flash.notice = "Post successfully saved"
        redirect_to current_user
      end
    

    用户“显示”视图:

    <%= @user.email %>
    <%= @user.first_name %>
    
    
    <%= @posts.each do |post| %>
    <p>
      <%= post.content %>
    </p>
    <% end %>
    
    
    <%= form_for @post do |f| %>
      <%= f.text_field :content %>
      <%= f.submit "Create" %>
    <% end %>
    

    所以一切都很好,但是在我的展示页面上,假设用户有3个“帖子” ["Test 1", "Test 2", "Test 3"] . 我看到了所有的3个,但在最后,我也看到了一个包含所有这些的数组。页面上的内容如下:

    Test 1
    
    Test 2
    
    Test 3
    
    [#<Post id: 6, content: "Test 1", user_id: 1, created_at: "2019-02-10 06:49:15", updated_at: "2019-02-10 06:49:15">, #<Post id: 7, content: "Test 2", user_id: 1, created_at: "2019-02-10 06:49:19", updated_at: "2019-02-10 06:49:19">, #<Post id: 8, content: "Test 3", user_id: 1, created_at: "2019-02-10 06:49:22", updated_at: "2019-02-10 06:49:22">]
    

    这对我来说没有意义。为什么最后一项出现?

    1 回复  |  直到 5 年前
        1
  •  2
  •   vinyl    5 年前

    应该是 <% @posts.each do | post| %>

    在opening erb标记中添加等号将在视图中显示这些内容。