它看起來像你正在尋找一個AJAX表單。在rails中,你可以用form_for ... remote生成這個:true。這可以在刷新頁面時調用控制器方法。然後你可以返回一個響應並使用JS來更新用戶所在的頁面。
例如,在您看來
<div class="hidden">
<%= from_for @category, remote:true %>
Your form here
<% end %>
</div>
中加入某些JavaScript來取消隱藏窗體點擊您的按鈕時。在使用軌道默認f.js控制器
def create
#normal create stuff
if save
respond_to do |f|
f.js
f.html {#re render page just in case JavaScript is disabled}
end
else
#handle error
end
end
,Rails會調用create.js.erb該文件的文件將有機會獲得你做出任何公開的變量,例如@Category。
然後你可以做財產以後沿
$('.append_category').append('<%= j render 'your category layout partial', locals: { category: @category }%>');
行,或者如果你只需要類別鏈接
$('.append_category').append('<%= link_to @category %>');
一個很不錯的指南可以在這裏找到http://guides.rubyonrails.org/working_with_javascript_in_rails.html
注意:取決於您的rails版本,您可能需要將ActionController :: MimeResponds添加到您的application_controller.rb(我知道這在rails 5中是必需的)
非常感謝。我會盡量使用它 –