您可以在不使用嵌套资源的情况下避免批量分配问题吗?

jfdimark

我有一个模型之间具有以下关系的应用程序:

类ContentPartner <用户

  has_many :events, dependent: :destroy
  has_many :videos, through: :events, dependent: :destroy

类视频

  belongs_to :event

课堂活动

  has_many :videos, dependent: :destroy

如何创建新视频,以使其传递正确的:event_id和:content_partner_id,而不使用嵌套资源(我不希望)或通过将:event_id和:content_partner_id添加到其中来创建批量分配安全问题视频attr_accessible白名单?

使用我的控制器是这样的:

  def create
    @event = Event.find(params[:video][:event_id])   
    @video = @event.videos.create(params[:video])
    if @video.save
      flash[:success] = "Video uploaded!"
      redirect_to session[:return_to]
    else
      flash[:error] = "#{@video.errors.messages}"
      render new_video_path
    end  
  end

而且在@videos表单中没有hidden_​​field,我最终遇到错误“找不到没有ID的事件”

但具有:

    <%= f.hidden_field :event_id, value: @event.id %>

在我的表单中,出现错误“无法批量分配受保护的属性:event_id”

有没有第三种方法来创建一个新的属于事件的视频,而又不使用嵌套的资源或不影响批量任务的风险?

明高

好了,您可以将hidden_​​field更改为:

<%= hidden_field_tag :event_id, @event.id %>

现在,在控制器中,您可以使用以下命令访问该变量:

Event.find(params[:event_id])

这样可以避免质量分配错误。但是,现在,任何恶意用户都可以编辑该隐藏字段并将视频添加到他希望的任何事件中。要解决此问题,您应该通过关联找到事件。因此,如果您有一个current_usercurrent_content_partner,则应该找到这样的事件:

current_content_partner.events.find(params[:event_id])

现在,用户只能访问他拥有的事件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

您可以在不使用嵌套资源的情况下避免批量分配问题吗?

来自分类Dev

您可以在不使用其网格系统的情况下使用Bootstrap吗?

来自分类Dev

您可以在不使用 OAuth 的情况下使用 StockTwits api 吗?

来自分类Dev

您可以在不使用API的情况下获取MailChimp兴趣组ID吗?

来自分类Dev

在不使用“dplyr”库的情况下避免嵌套 ifelse

来自分类Dev

您可以在不使用密钥管理服务(KMS)的情况下加密AWS服务中的数据吗?

来自分类Dev

您可以在不使用Google Spreadsheets API覆盖值的情况下更新单元格的样式吗?

来自分类Dev

我可以在不使用“ this”的情况下重写Javascript吗?

来自分类Dev

可以在不使用 Maven 的情况下开发插件吗?

来自分类Dev

如何避免未使用的setState函数?可以在不使用setter的情况下创建React useState吗?

来自分类Dev

您可以在不取消嵌套的情况下投射重复字段吗?

来自分类Dev

您可以在不使用服务器的情况下在本地生成HTML吗?

来自分类Dev

您可以在不使用服务器的情况下在本地生成HTML吗?

来自分类Dev

在Vue中,您可以在不使用计算机属性的情况下,通过将其他道具与字符串连接来创建道具吗?

来自分类Dev

在Vue中,您可以在不使用计算机属性的情况下,通过将其他道具与字符串连接来创建道具吗?

来自分类Dev

您可以在不声明变量的情况下命名吗?

来自分类Dev

您可以在不创建实例的情况下使用其他文件类中的函数吗?

来自分类Dev

您可以在不获取OAuth凭据的情况下使用OpenID Connect吗?

来自分类Dev

您可以在不声明每个值的情况下使用Javascript创建对象吗?

来自分类Dev

我可以在不使用EntityFramework的情况下使用ObjectContext吗?

来自分类Dev

我可以在不使用ionic的情况下使用cordova-plugin-ionic-webview吗?

来自分类Dev

可以在不使用任何SDK的情况下使用Facebook的Graph API吗?

来自分类Dev

我可以在不使用界面的情况下使用Windsor注入组件吗

来自分类Dev

我可以在不使用表的情况下使用 SQL Server 事务吗?

来自分类Dev

我可以在不使用google-services.json的情况下初始化Firebase吗?

来自分类Dev

有什么方法可以在不使用图像的情况下指定收藏夹图标吗?

来自分类Dev

Java system.in可以在不使用线程的情况下与输入源代码同时工作吗

来自分类Dev

我可以在不使用等待的情况下从异步中捕获错误吗?

来自分类Dev

函数可以在不使用python中的global的情况下访问类的实例吗?

Related 相关文章

  1. 1

    您可以在不使用嵌套资源的情况下避免批量分配问题吗?

  2. 2

    您可以在不使用其网格系统的情况下使用Bootstrap吗?

  3. 3

    您可以在不使用 OAuth 的情况下使用 StockTwits api 吗?

  4. 4

    您可以在不使用API的情况下获取MailChimp兴趣组ID吗?

  5. 5

    在不使用“dplyr”库的情况下避免嵌套 ifelse

  6. 6

    您可以在不使用密钥管理服务(KMS)的情况下加密AWS服务中的数据吗?

  7. 7

    您可以在不使用Google Spreadsheets API覆盖值的情况下更新单元格的样式吗?

  8. 8

    我可以在不使用“ this”的情况下重写Javascript吗?

  9. 9

    可以在不使用 Maven 的情况下开发插件吗?

  10. 10

    如何避免未使用的setState函数?可以在不使用setter的情况下创建React useState吗?

  11. 11

    您可以在不取消嵌套的情况下投射重复字段吗?

  12. 12

    您可以在不使用服务器的情况下在本地生成HTML吗?

  13. 13

    您可以在不使用服务器的情况下在本地生成HTML吗?

  14. 14

    在Vue中,您可以在不使用计算机属性的情况下,通过将其他道具与字符串连接来创建道具吗?

  15. 15

    在Vue中,您可以在不使用计算机属性的情况下,通过将其他道具与字符串连接来创建道具吗?

  16. 16

    您可以在不声明变量的情况下命名吗?

  17. 17

    您可以在不创建实例的情况下使用其他文件类中的函数吗?

  18. 18

    您可以在不获取OAuth凭据的情况下使用OpenID Connect吗?

  19. 19

    您可以在不声明每个值的情况下使用Javascript创建对象吗?

  20. 20

    我可以在不使用EntityFramework的情况下使用ObjectContext吗?

  21. 21

    我可以在不使用ionic的情况下使用cordova-plugin-ionic-webview吗?

  22. 22

    可以在不使用任何SDK的情况下使用Facebook的Graph API吗?

  23. 23

    我可以在不使用界面的情况下使用Windsor注入组件吗

  24. 24

    我可以在不使用表的情况下使用 SQL Server 事务吗?

  25. 25

    我可以在不使用google-services.json的情况下初始化Firebase吗?

  26. 26

    有什么方法可以在不使用图像的情况下指定收藏夹图标吗?

  27. 27

    Java system.in可以在不使用线程的情况下与输入源代码同时工作吗

  28. 28

    我可以在不使用等待的情况下从异步中捕获错误吗?

  29. 29

    函数可以在不使用python中的global的情况下访问类的实例吗?

热门标签

归档