레일스가 내 리디렉션을 무시하고 있습니다.rails이 내 리디렉션을 무시합니다.
사용 사례 :
- 사용자는 자신의 계정을 탐색하고
- 응용 프로그램은이
- 사용자가 구독을 취소 취소 자신의 현재 가입 및 옵션을 나열 자신의 가입 상태를 표시하는 옵션을 선택
앱이 구독 기록을 업데이트하고 은 사용자를 구독 동작으로 다시 리디렉션해야 함
->하지만 레일스는이 마지막 단계를 무시합니다 ... 내가 뭘 잘못하고 있는지 아이디어가 있습니까?
경로
map.resources :users, ..., :member => { ..., :subscriptions => :get, :subscribe => :post, :unsubscribe => :put}
컨트롤러 :
def subscriptions
@tradesman = User.find_by_id(params[:id])
@subscription = @tradesman.current_subscription || Subscription.new
@all_subscriptions = Subscription.find(:all)
end
def subscribe
@tradesman = User.find_by_id(params[:id])
@subscription = current_user.subscriptions.build(params[:subscription])
@subscription.update_attributes(:started_at => Time.zone.now)
@subscription.save
redirect_to :action => 'subscriptions', :id => @tradesman.id
end
def unsubscribe
@tradesman = User.find_by_id(params[:id])
@subscription = @tradesman.current_subscription
@subscription.update_attributes(:ended_at => Time.zone.now)
@subscription.save
redirect_to :action => 'subscriptions', :id => @tradesman.id
end
보기 :
<div class = 'wrapper'>
<%= render :partial => "my_account_leftbar" %>
<% form_for @subscription, :url => subscribe_user_path(current_user) do |f| %>
<% @all_subscriptions.each do |subscription| %>
<div class="field">Start: <%= subscription.started_at %></div><br><br>
<% end %>
<% if @subscription.new_record? %>
<div class="field">
<%= f.check_box :subscription_type %>
<div class="actions">
<%= f.submit "Subscribe", :class => "button mr8" %>
</div>
</div>
<% else -%>
<%= f.check_box :subscription_type, :value => @subscription.subscription_type, :disabled => true %>
<% form_for @subscription, :url => unsubscribe_user_path(current_user) do |f| %>
<div class="actions">
<%= f.submit "Unsubscribe", :class => "button mr8" %>
</div>
<% end %>
<% end %>
<% end %>
</div>
내가 중첩 된 뷰에 버그 발견 '구독'양식의 '구독 취소'양식 - 이해가 안되는 것. 내가보기를 재정렬했습니다 (이 두 가지 형식은 'if'부분과 'else'부분으로 구분됩니다.) 이제 제대로 작동합니다. – hebe
stackoverflows가 허용하는대로 새보기를 게시합니다 .. – hebe