我有一个有趣的情况,它可能不是那么独特,但我不完全确定如何解决它。我有一个模型,在这种情况下是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}}我的操作员的动作。
思想?
答案 0 :(得分:1)
我不确定我是否理解正确,但是:
在新操作中,您可以创建新对象并将文件附加到该对象并以一种形式发布。此时您不必将其存储在db中。它可以像create
动作一样保存在模型中的任何其他文件中。在这种情况下,字段“name”和“attached_file”(仅示例)以相同的方式处理(几乎)。看看网络上的一些回形针(或其他)教程。