Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 由Rails中的用户发布到组页面_Ruby On Rails - Fatal编程技术网

Ruby on rails 由Rails中的用户发布到组页面

Ruby on rails 由Rails中的用户发布到组页面,ruby-on-rails,Ruby On Rails,我有一个群组模型,在这个模型中,我希望用户能够发表文章。每篇文章都属于该特定组以及发表该文章的用户(稍后,每篇文章都会有评论)。我想我应该选择rails教程的microposts部分,然后调整它以适应我的模型(www.railstutorial.org/book/user\u microposts) 现在,表单partial在group#show页面上可见,但是如果不提供group.id,我无法在posts#u控制器中生成帖子,在create操作中添加@group=group.find(para

我有一个群组模型,在这个模型中,我希望用户能够发表文章。每篇文章都属于该特定组以及发表该文章的用户(稍后,每篇文章都会有评论)。我想我应该选择rails教程的microposts部分,然后调整它以适应我的模型(www.railstutorial.org/book/user\u microposts)

现在,表单partial在group#show页面上可见,但是如果不提供group.id,我无法在posts#u控制器中生成帖子,在create操作中添加@group=group.find(params[:id])是不起作用的,我不确定如何从一个组构建帖子列表

posts\u controller.rb

  def create
    @post = @group.posts.build(post_params) #Find way to provide group id
    @post.user_id = current_user.id
    if @post.save
      flash[:success] = "Post created!"
      redirect_to root_url
    else
      redirect_to root_url
    end
  end

    def destroy
    end


  private

    def post_params
      params.require(:post).permit(:body, :user_id, :group_id)
    end
def show
    @group = Group.find(params[:id])
    @post = @group.posts.build
end
rb(与其他模型相比有很多:posts)

团体秀上的post#u表单

routes.rb

  resources :groups do
    resources :follows, :only => [:create, :destroy]
  end
  resources :posts, :only => [:create, :destroy]

我确实认为可能:post需要嵌套在:groups资源中?这提供了一个“未定义的方法‘posts_path’”。

您可以在组中嵌套posts,如下所示:

resources :groups do
  ...
  resources :posts, only: [:create, :destroy]
end
运行“rake routes”查看您的路由如何命名。您的表单必须包含对组的引用,即

form_for [@group, @post] do
  ...
end
组id将作为params[:Group_id]在params散列中可用


还可以查看

您可以在组中嵌套帖子,如下所示:

resources :groups do
  ...
  resources :posts, only: [:create, :destroy]
end
运行“rake routes”查看您的路由如何命名。您的表单必须包含对组的引用,即

form_for [@group, @post] do
  ...
end
组id将作为params[:Group_id]在params散列中可用

也请查看