RoR:为什么我的微博不出现?

时间:2012-09-19 20:50:08

标签: ruby-on-rails-3

以下是用户显示他们应该出现的视图。 ..

编辑(我稍微更新了这篇文章,你可以在RoR: How can I get my microposts to show up?看到它)

<section>
  <div id= "purchases">
    <%= render 'shared/micropost_form_purchase' %>
  </div>
  <div id="sales">
    <%= render 'shared/micropost_form_sale' %>
  </div>
</section>

<div id="purchases list">
  <ol class="microposts">
    <%= render @purchases unless @purchases.nil? %>
  </ol>
</div>

<div id="sales list">
  <ol class="microposts">
    <%= render @sales unless @sales.nil? %>
  </ol>
</div>

所以表格(部分)加载正常,但是当我发帖时,在任何一个中,购买清单和销售清单都不会显示。我检查了数据库,并且正在创建它们以及列中的条目,表示种类(销售或购买)

以下是表格:

<%= form_for (@micropost) do |f| %>

  <div class="field no-indent">
    <%= f.text_area :content, placeholder: "What's something else you want to buy?" %>
    <%= hidden_field_tag 'micropost[kind]', "purchase" %>
  </div>
  <%= f.submit "Post", class: "btn btn-large btn-primary" %>
<% end %>

<%= form_for (@micropost) do |f| %>

  <div class="field no-indent">
    <%= f.text_area :content, placeholder: "What's something else you want to buy?" %>
    <%= hidden_field_tag 'micropost[kind]', "sale" %>
  </div>
  <%= f.submit "Post", class: "btn btn-large btn-primary" %>
<% end %>

另外,这是users_controller.rb的显示部分

 def show
    @user = User.find(params[:id])
    @micropost=Micropost.new
    @microposts = @user.microposts.paginate(page: params[:page])
  end

,这是microposts_controller.rb的显示部分

def show

    @micropost = Micropost.find(params[:id])
    @microposts = Micropost.where(:user_id => @user.id)
    @purchases = @microposts.where(:kind => "purchase")
    @sales = @microposts.where(:kind => "sale")

  end

任何人都可以帮助我吗?我还需要什么?嗯

1 个答案:

答案 0 :(得分:1)

首先,为了确保您获得所需的结果,您应该在视图中尝试这样的事情

<%= @sales %>

这应该是您想要的结果的哈希值。然后,如果看起来不错,你想做这样的事情

<div id="sales_list">
  <ol class="microposts">
    <% if @sales.any? %>
      <% @sales.each do |sale| %>
        <li><%= sale %></li>
      <% end %>
    <% end %>
  </ol>
</div>

重复购买