use rocket::request::Form; use rocket::response::Redirect; use diesel::{self, ExecuteDsl}; #[derive(BartDisplay)] #[template = "templates/new_post.html"] pub struct NewPostTemplate<'a> { title: &'a str, post: ::models::NewPost } implement_responder_for!(NewPostTemplate<'a>); #[get("/new", format = "text/html")] fn new<'a>(_conn: ::rocket_blog::DbConn) -> NewPostTemplate<'a> { NewPostTemplate { title: "Bloggen", post: Default::default() } } #[post("/create", data="")] fn create(post: Form<::models::NewPost>, conn: ::rocket_blog::DbConn) -> Redirect { use ::schema::posts; diesel::insert(post.get()) .into(posts::table) .execute(&*conn) .expect("Error saving post."); Redirect::to("/") }