控制器方法没有正确重定向

时间:2016-06-23 00:32:11

标签: ruby-on-rails ruby actioncontroller

我目前有一个控制器方法,在属性上递增1,然后它应该重定向到找到该用户的特定页面。但出于某种原因,我无法弄清楚它是否继续呈现else语句和方法的结束。我发布了我的代码,然后在看到它后清理它们。

控制器:

  <div class="padding">
    BEGIN
    <br>
  </div>

查看:

  def search
    @subscriber = Subscriber.new
  end

  def visit
    @subscriber = Subscriber.find_by_phone_number(params[:phone_number])
    if @subscriber
      @subscriber.visit ||= 0
      @subscriber.visit += 1
      @subscriber.save
      flash[:notice] = "Thank You #{@subscriber.first_name}. You have #{@subscriber.days_till_expired} until renewal"
      redirect_to subscribers_visit_path(:subscriber)
    else
      render "search"
    end
  end

无论出于何种原因,它都会继续呈现&#34;搜索&#34;在方法的else部分而不是subscriber_visit_path,但它<h1>Hello Subscriber</h1> <% if @subscriber %> <tr> <td><%= image_tag avatar_url(@subscriber) %></td> <td><%= @subscriber.first_name %></td> </tr> <% else %> <tr><td>No subscriber found!</td></tr> <% end %> 部分就好了。所以,基本上它找到了订阅者,但是在它增加之后它似乎使订阅者变为零?我错过了一些明显的东西吗?

1 个答案:

答案 0 :(得分:1)

我同意巴斯先生的评论 - 您是否有测试以确保该过程有效?

特别是if @subscriber

我可能会尝试在if语句中使用内置的exists?,这可以保证真实或错误的结果。