Ruby on rails Rails:在新动作中创建模型

Ruby on rails Rails:在新动作中创建模型,ruby-on-rails,Ruby On Rails,我有一个有趣的情况,嗯,它可能一点也不独特,但我不完全确定如何处理它。我有一个模型,在本例中是一个配方,用户导航到新路径/recipes/new,但是情况是,我需要能够让用户上传图像并在新操作中与该模型关联,但模型还没有ID 所以我想我需要重新考虑我的控制器,但我不想有重定向之类的,怎么能做到这一点呢 这是基本控制器,显而易见: ... def new # I should be creating the model first, so it has an ID @recipe = R

我有一个有趣的情况,嗯,它可能一点也不独特,但我不完全确定如何处理它。我有一个模型,在本例中是一个
配方
,用户导航到新路径
/recipes/new
,但是情况是,我需要能够让用户上传图像并在新操作中与该模型关联,但模型还没有ID

所以我想我需要重新考虑我的控制器,但我不想有重定向之类的,怎么能做到这一点呢

这是基本控制器,显而易见:

...

def new
  # I should be creating the model first, so it has an ID
  @recipe = Recipe.new
end

def create
  @recipe = Recipe.new(params[:recipe])
  if @recipe.save
    redirect_to @recipe
  else
    render 'new'
  end
end

...

更新

也许我可以有一个类似于
state
的列,其中可以有
new/complete/complete
或其他类似的值。我主要是想找出什么对DB来说也是最有效的

如果我仍然可以有一个写着“/new”的url,而不是id为的编辑路径,那就太好了,为了可用性起见,但我不确定这是否可以通过我的控制器的
new
操作简单地实现


想法?

我不确定我是否正确理解你,但是:


在“新建操作”中,您可以创建新对象并将文件附加到该对象,然后将其以一种形式发布。此时不必将其存储在db中。它可以像模型中的任何其他文件一样保存在
create
操作中。在本例中,字段“name”和“attached_file”(仅示例)的处理方式相同(几乎相同)。看看网络上的一些回形针(或任何东西)教程。

听起来你确实理解我的问题,但是,如果我有一个多态模型,如
照片
,它必须有
可附加id
,因为如果他们想附加多张照片,我不能在同一模型中有照片列。因此,模型(在本例中为
配方
)在创建相关模型之前必须有一个id,因为它需要知道它的id。如果您的模型
有很多:照片
(或其他),您可以添加
接受:照片
的嵌套属性以及在表单中使用
等等。这样,您可以在
new
操作中以一种形式添加多个附件。