21st Sat
既存のリソースを再利用して新規作成する
リソースを新規に作成する場合に、既存のものを再利用して作成したい場合は良くあると思います。
そんな時は、newアクションで:idを受け取れるようにして、
以下のようにすると、簡単に実現出来ます。
ruby>>
def new
@post = Post.new
@post.attributes = Post.find(params[:id]).attributes if params[:id]
@posts = Post.for_user(current_user).all
end
<<--
そしてposts/new.html.erbの中で
html>>
<% if @posts.present? %>
こんな感じに、テンプレートの読み込みフォームを作ります。
これで完了です。
Ajaxで posts/new/1 のようなURLにGETで遷移するようにした方が格好がいいかもしれません。
newアクションが:idで指定したリソースをテンプレートとして利用して新規にリソースを作成するというのは、標準的な挙動になっても良い気がします。
posted by
genki on Sat 21 Mar 2009 at 13:18 with 0 comments