Rails - 在同一页面上提交和索引

时间:2016-08-07 20:29:45

标签: ruby-on-rails forms

我想知道是否有任何方法可以将我的索引页面用作提交页面。

例如,我希望能够在同一页面上提交帖子和列表已经存在的帖子。

2 个答案:

答案 0 :(得分:0)

这绝对是错误的。您应该阅读this

,而不是将所有POST和GET路由到一个方法

基本上,您将更改页面以通过ajax将数据发布到新方法,并将div元素替换为部分。

答案 1 :(得分:0)

是的,您可以在索引视图中显示带有form_for帮助器的表单。

index中的posts_controller.rb行为应如下所示:

def index
  @post = Post.new
  @posts = Posts.all
end

您的view/posts/index.html.erb视图应如下所示:

<%= form_for(@post) do |f| %>
  <%= f.label :title, "Post title" %>
  <%= f.text_field :title%>

  <%= f.label :content, "Content" %>
  <%= f.text_field :content%>

  <%= f.submit "Add"%>
<% end %>

<%= render @posts %>

然后你必须在_post.html.erb文件夹中创建一个名为view/posts的部分,以显示每个帖子的html。

请注意,create仍然需要posts_controller操作,例如:

def create
  @post = Post.new(post_params)
  redirect_to root_path
end

  private

    def post_params
      params.require(:post).permit(:title, :content)
    end

让我知道它是否有效:)