我無法讓重定向和錯誤消息生效。從我讀過的你不能得到一個表單錯誤,當你使用重定向顯示,所以我試圖在失敗後使用渲染。顯示錶單錯誤消息
我在主題頁上有一個新帖子表單。網址是「topic/1」。如果您對該主題發表了一篇文章,並且輸入內容出了問題,我希望它回到topic/1的頁面,並顯示錯誤,我無法弄清楚如何讓它恢復。重定向(:後退)做我想要的,但不顯示錶單錯誤。
話題的show.html網頁上的表格:
<%= form_for(@post) do |f| %>
<%= render 'shared/post_error_messages' %>
<%= f.label :title, "Post Title" %>
<%= f.text_field :title %>
<%= f.label :content %>
<%= f.text_field :content %>
<%= f.hidden_field :parent_id, value: 0 %>
<%= f.hidden_field :topic_id, value: @topic.id %>
<%= f.hidden_field :user_id, value: current_user.id %>
<%= f.submit "Create Post" , class: "btn btn-small btn-primary" %>
<% end %>
創建的帖子控制器
def create
@post = Post.new(post_params)
@topic = Topic.find_by(id: params[:topic_id])
if @post.save
redirect_to @post
else
@topic = Topic.new
render "/topics/show"
end
end
我想我主要是試圖做從該ID的渲染作用該表格最初的頁面。
您必須告訴方法要呈現的內容。在這種情況下,我猜這是':new'模板。 – Omni
我遺漏了我所擁有的東西,因爲它不起作用,我正在嘗試一些不同的想法,我用我現在的東西編輯了原始文章。它顯示錯誤消息和表單,但我不能讓它顯示頁面的其餘部分,即與該主題ID相關聯的帖子列表。 – Matthew
'@topic = Topic.new'在創建時不需要使用'render'new'' – Nithin