Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.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 铁路协会问题_Ruby On Rails_Ruby On Rails 3_Associations - Fatal编程技术网

Ruby on rails 铁路协会问题

Ruby on rails 铁路协会问题,ruby-on-rails,ruby-on-rails-3,associations,Ruby On Rails,Ruby On Rails 3,Associations,我有两种型号: Users, and Articles 每个用户都可以创建文章,但只能编辑自己的文章 有人能举个例子吗?(请提供型号、控制器和视图?) 谢谢 编辑 我不想要全部代码。我可以使用脚手架获得大部分代码。我需要的修改,我必须做到这一点。我最关心的是如何只允许文章的作者编辑它。这就是我要问的。我无法写出完整的示例代码,但我至少可以为您指出正确的方向 您正在描述两个模型之间的一对多关联。这是我在了解如何在Rails中设置这些关联方面所见过的最好的方法 一旦你做到这一点,你就可以很容易地根

我有两种型号:

Users, and Articles
每个用户都可以创建文章,但只能编辑自己的文章

有人能举个例子吗?(请提供型号、控制器和视图?)

谢谢

编辑


我不想要全部代码。我可以使用脚手架获得大部分代码。我需要的修改,我必须做到这一点。我最关心的是如何只允许文章的作者编辑它。这就是我要问的。

我无法写出完整的示例代码,但我至少可以为您指出正确的方向

您正在描述两个模型之间的一对多关联。这是我在了解如何在Rails中设置这些关联方面所见过的最好的方法

一旦你做到这一点,你就可以很容易地根据文章的所有权限制访问。对于这样直截了当的事情,你可能不需要权限宝石,但有一些坚实的存在

我会保护控制器和视图中的访问。您可以简单地对照视图上的article对象检查当前用户,并在控制器中使用before过滤器保护文章


如果你在这条路上走得更远,并且有更具体的问题,我很乐意尝试回答。

假设一篇文章
属于:user
,并且你有一个身份验证设置,它为你提供了一个
当前用户
方法,你应该能够在你的文章控件中执行类似的操作:

def edit
  @article = Article.find(params[:id])

  if @article.user == current_user
    render :edit
  else
    flash[:alert] = "You don't have permission to edit this article."
    redirect_to some_path
  end
end

您的
更新方法也需要类似的东西。

我不确定是否有人愿意为您编写所有代码。我不想要全部代码。我可以使用脚手架获得大部分代码。我需要的修改,我必须做到这一点。我最关心的是如何只允许文章的作者编辑它。这就是我要问的。要回答这个问题,请看一看:我真的需要一块宝石来做那些“简单”的东西吗?你根本不需要它。但是,你得到的一件事是,你几乎知道他们的工作,他们已经为你解决了所有真正容易的事情。为什么要重新发明轮子?