控制器方法未正确重定向
Controller method not redirecting properly
我目前有一个控制器方法,可以在属性上递增 1,然后它应该重定向到找到该用户的特定页面。但出于某种原因,我无法弄清楚它一直在呈现 else 语句和方法的结尾。我会 post 我的代码,然后在你看到它时清理它。
控制器:
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
查看:
<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 %>
无论出于何种原因,它都会在方法的 else 部分而不是 subscriber_visit_path 中呈现 "search",但它会很好地处理 += 1
部分。所以,基本上它是在寻找订阅者,但在它增加之后似乎让订阅者变为零?我在这里遗漏了什么明显的东西吗?
我同意 Bass 先生的评论 - 您是否进行了测试以确保流程正常运行?
特别是 if @subscriber
.
我可能会尝试在您的 if 语句中使用内置的 exists?
,这可以保证结果为真或假。
我目前有一个控制器方法,可以在属性上递增 1,然后它应该重定向到找到该用户的特定页面。但出于某种原因,我无法弄清楚它一直在呈现 else 语句和方法的结尾。我会 post 我的代码,然后在你看到它时清理它。
控制器:
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
查看:
<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 %>
无论出于何种原因,它都会在方法的 else 部分而不是 subscriber_visit_path 中呈现 "search",但它会很好地处理 += 1
部分。所以,基本上它是在寻找订阅者,但在它增加之后似乎让订阅者变为零?我在这里遗漏了什么明显的东西吗?
我同意 Bass 先生的评论 - 您是否进行了测试以确保流程正常运行?
特别是 if @subscriber
.
我可能会尝试在您的 if 语句中使用内置的 exists?
,这可以保证结果为真或假。