Ruby on rails 将用户_id添加到具有强参数的嵌套_属性

Ruby on rails 将用户_id添加到具有强参数的嵌套_属性,ruby-on-rails,ruby,ruby-on-rails-4,strong-parameters,Ruby On Rails,Ruby,Ruby On Rails 4,Strong Parameters,有谁能告诉我在父模型创建/更新时向嵌套模型添加用户id的最佳实践是什么 假设我有一个乐队模型,分配了许多歌曲模型。任何用户都可以编辑乐队信息,并使用视图中的方法的字段添加任何歌曲sSongs表有一个user\u id列,该列应填充current\u user.id 我正在尝试在我的BandsController中使用强大的参数来解决这个问题,但没有任何运气 BandsControllerband_参数方法大致如下: def band_params params.require(:band).

有谁能告诉我在父模型创建/更新时向嵌套模型添加用户id的最佳实践是什么

假设我有一个
乐队
模型,分配了许多
歌曲
模型。任何用户都可以编辑
乐队
信息,并使用视图中的
方法的
字段添加任何
歌曲
s
Songs
表有一个
user\u id
列,该列应填充
current\u user.id

我正在尝试在我的
BandsController
中使用强大的参数来解决这个问题,但没有任何运气

BandsController
band_参数
方法大致如下:

def band_params
  params.require(:band).permit(
    :name, :location, :city, :country_name, :country_code,
    songs_attributes: [:id, :name, :duration, :_destroy]
  )
end
我可以破解该方法并迭代每个
songs\u属性
元素,添加用户id,但这样的操作没有更好/更安全/内置的功能吗?如果没有,最充分的方法是什么


提前感谢。

假设在添加歌曲之前您的乐队已经存在:

def update
    @band = Band.find(params[:id])
    @band.user = current_user
    @band.update_attributes(band_params)      
end
如果同时创建乐队和歌曲:

def create
    @band = Band.new(band_params)
    @band.user = current_user
    @band.save      
end

我写了一个gem,它将在保存过程中自动设置
由id创建的
由id更新的


如果您使用的是rails 4,则必须使用git安装

我误解了这个问题。我正在更改我的答案,并将很快发布。当然;)请记住,乐队确实有一个
user\u id
列,但它并不总是与宋的
user\u id
相同。我需要知道哪个用户向乐队添加了歌曲,这就是为什么。你的应用程序应该做什么。据我所知,我不确定你的应用程序是否像它所能做到的那样restful。比如说,我正在创建一个维基风格的乐队和歌曲数据库。用户可以创建乐队条目,但也可以使用嵌套表单将歌曲分配给乐队。除了通过这种嵌套形式之外,没有其他方法可以创建歌曲。我需要存储创建歌曲的用户id。是否希望每首歌曲都有一个用户id?不是每个乐队吗?是的,我需要知道哪个用户创建了一首歌,并且可以从乐队表单的
fields\u部分创建一首歌。我写了一个gem,它将在保存过程中自动设置created\u by\u id和updated\u by\u id——使用rails 4,您必须从git(目前)安装nice stuf@house9!这正是我想要的:)把它作为答案贴出来,我会把它标记为接受。谢谢好-作为答案添加