Rails:在新操作中创建模型

时间:2010-05-08 18:46:24

标签: ruby-on-rails

我有一个有趣的情况,它可能不是那么独特,但我不完全确定如何解决它。我有一个模型,在这种情况下是recipe,用户导航到新路径/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/incomplete/complete或者你拥有的值。我主要想弄清楚DB的效率最高。

如果我仍然可以有一个说'/ new'的网址,而不是带有id的编辑路径,那将是好的,但是我不确定这可以在{ {1}}我的操作员的动作。

思想?

1 个答案:

答案 0 :(得分:1)

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

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