Ruby 如果数据库中只有1项,则跳过索引页(直接转到显示页)

Ruby 如果数据库中只有1项,则跳过索引页(直接转到显示页),ruby,model-view-controller,ruby-on-rails-4,routing,routes,Ruby,Model View Controller,Ruby On Rails 4,Routing,Routes,如果我的数据库中该项目只有一个项目更新,我如何跳过索引页直接转到显示页(同时确保如果数据库中没有更新(零),则不会显示任何按钮) 我试过这个: <% if @project.updates.any? %> <%= button_tag type: "button", :class => "radius" do %> <% if @project.updates=1 %> <

如果我的数据库中该项目只有一个项目更新,我如何跳过索引页直接转到显示页(同时确保如果数据库中没有更新(零),则不会显示任何按钮)

我试过这个:

    <% if @project.updates.any? %>  
        <%= button_tag type: "button", :class => "radius" do %>
            <% if @project.updates=1 %>
            <%= link_to 'Project Update', project_update_path(@project),  :style => "color: white" %>
            <% else %>
            <%= link_to 'Project Updates', all_project_updates_path(@project),  :style => "color: white" %>
            <% end %>
        <% end %>
    <% end %>
在这一行:

<% if @project.updates=1 %>
以下是最终生成的路线:

    project_updates_path     GET     /project_updates(.:format)  project_updates#index
    project_update_path  GET     /project_updates/:id(.:format)  project_updates#show
这是我的项目控制器(显示操作)

这是我的项目更新控制器索引操作:

   def index
      @projectUpdates = ProjectUpdate.where(:project_id => params[:id])
      respond_to do |format|
         format.html
      end
   end
这是我的项目更新控制器显示操作:

   def show
      @projectUpdate = ProjectUpdate.find(params[:id])
      respond_to do |format|
         format.html
      end
   end
你可能是说:

<% if @project.updates.count == 1 %>

很好的捕获。当我使用它时,它仍然会将我带到索引页,但当我使用它时,它会根据需要将我带到显示页。为什么枚举方法有效而另一个无效?@user3597950是因为我的错误(您应该将
更新
计数与
1
进行比较,而不是进行自我更新。编辑后请检查我的答案。太棒了!非常感谢。最后一个问题,为什么@project.updates==1不起作用?使用时,.count会起作用?在每个实例中它与什么进行比较?我不确定我是否已经理解了,但仍在学习中。@user3597950因为
@project.updates
1
@user3597950不同,它是
ActiveRecord::Relation
,一种复杂的
数组
def show
    @project = Project.find(params[:id])
    @comments = Comment.all.where(:project_id => @project.id)
    @updates = ProjectUpdate.all.where(:project_id => @project.id)
end
   def index
      @projectUpdates = ProjectUpdate.where(:project_id => params[:id])
      respond_to do |format|
         format.html
      end
   end
   def show
      @projectUpdate = ProjectUpdate.find(params[:id])
      respond_to do |format|
         format.html
      end
   end
<% if @project.updates.count == 1 %>
<% if @project.updates.one? %>