这是我的情况,我有一个Stories控制器,该控制器具有创建新Post的形式:
stories.show.erb
...
<%=link_to("Create new post",new_story_post_path(@post))%>
此新帖子由Posts控制器生成
posts\new.erb
<%= form_for [@story,@post] do |f|%>
我想摆脱传统的行为-我希望新的帖子表单显示在相同的“故事”页面内,而不要重新加载整个页面并出现在新页面中。
在rails中执行此操作的最佳方法是什么?
我认为在您的情况下,最好在故事显示视图中添加表格并将其隐藏,然后当用户单击链接以创建新帖子时,您可以向其显示表格。
def show
@story = Story.find(params[:id])
@post = @story.posts.build # assuming stories have many posts
end
#show.html.erb
...
<%=link_to "Create a new Post", "#", id: "post-link"%>
<%= form_for [@story,@post], html: {id: "new-post"} do |f|%>
// form fields
<% end %>
#some_file.js
$(document).on("click","#post-link",function(){
$("#new-post").show();
});
#some.css.scss
#new-post{display:none;}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句