1

特别是在我的新/创建操作中。我有@playlist = Playlist.new(params[:playlist])。问题是我在 attr_accessible 中也有我不希望他们修改的敏感数据(播放列表上的收听次数,他们不应该能够更新)。

我试过Playlist.new(:title => params[:title], :description => params[:description], etc)了,但没有用。我假设是因为我需要这样做params[:playlist][:title],但这看起来很混乱。我做错了吗?

4

1 回答 1

1

在模型中,您可以编写一个名为 new_safe 的函数,它使用您想要的参数创建新对象,然后返回它

像这样:

def new_safe(params)
   playlist = Playlist.new
   playlist.title = params[:title]
   playlist.description = params[:description]
   playlist.save
   playlist
end

只是想,类似地你可以这样写,这样更干净一些

控制器:

@playlist = Playlist.new
@playlist.input_params(params)

模型:

def input_params(params)
   playlist.title = params[:title]
   playlist.description = params[:description]
   playlist.save
end
于 2012-09-24T17:26:20.677 回答