Tôi đang thử diễn đàn beast được viết bằng đường ray và sẽ sử dụng điều này làm ví dụ về sự cố mà tôi tiếp tục gặp phải.Xác thực đường ray qua chuyển hướng
Diễn đàn có một chủ đề/hiển thị hành động và xem với biểu mẫu ở dưới cùng để tạo bài đăng mới trong chủ đề.
Gửi biểu mẫu đến bài đăng/tạo và nếu xác thực chuyển hướng trở lại chủ đề/chương trình và hoạt động tốt, tuy nhiên nếu xác thực không thành công (rời khỏi trường nội dung), bạn sẽ được chuyển hướng đến cùng một chủ đề/chương trình và trở lại biểu mẫu, không có lỗi xác thực ... bình thường nếu xác thực không thành công, bạn còn lại trên bất kỳ/tạo bằng render: action => new.
Các xác thực có bị mất trong chuyển hướng hay không và phương pháp nào tốt nhất để làm việc đó?
Xem mã bên dưới:
PostsController.rb
def create
@post = current_user.reply @topic, params[:post][:body]
respond_to do |format|
if @post.new_record?
format.html { redirect_to forum_topic_path(@forum, @topic) }
format.xml { render :xml => @post.errors, :status => :unprocessable_entity }
else
flash[:notice] = 'Post was successfully created.'
format.html { redirect_to(forum_topic_post_path(@forum, @topic, @post, :anchor => dom_id(@post))) }
format.xml { render :xml => @post, :status => :created, :location => forum_topic_post_url(@forum, @topic, @post) }
end
end
end
TopicsController.rb
def show
respond_to do |format|
format.html do
if logged_in?
current_user.seen!
(session[:topics] ||= {})[@topic.id] = Time.now.utc
end
@topic.hit! unless logged_in? && @topic.user_id == current_user.id
@posts = @topic.posts.paginate :page => current_page
@post = Post.new
end
format.xml { render :xml => @topic }
end
end
chủ đề/chương trình xem
<% form_for :post, :url => forum_topic_posts_path(@forum, @topic, :page => @topic.last_page) do |f| %>
<%= f.error_messages %>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td rowspan="2" width="70%">
<%= f.text_area :body, :rows => 8 %>
</td>
<td valign="top">
<%= render :partial => "posts/formatting" %>
</td>
</tr>
<tr>
<td valign="bottom" style="padding-bottom:15px;">
<%= submit_tag I18n.t('txt.views_topics.save_reply', :default => 'Save reply') %>
</td>
</tr>
</table>
<% end %>
Rất cám ơn.
Luồng công việc có vẻ lạ lùng – Chirantan
Ý của bạn là gì? Tôi có thể đã yêu cầu nó đơn giản hơn mà không có ví dụ. Về cơ bản, điều gì sẽ xảy ra với các thông báo lỗi nếu bạn chuyển hướng thay vì hiển thị và chúng có thể được truy cập ở đâu? – sebastyuiop