Rails 这样的 Controller 如何写

davidminaki · 2015年01月27日 · 最后由 cassiuschen 回复于 2015年01月27日 · 2596 次阅读

比如说新增一个产品后,保存后,直接进入该编辑状态,可以在同一页面编辑完成后再次提交保存 Controller 如何写 view 想公用一个 erb 文件

这个很简单啊,比如新建 post 请求对应的 method 是create

def create
    @production = Production.create(production_params)
    if @event.save
      redirect_to edit_production_path(@production), notice: '产品发布成功' 
    else
      render :new
    end
end

就可以了,redirect_to将页面跳转去编辑页面即可。公用一个 erb 不现实,但是两个 erb 里都可以同时渲染同一张表:

<div class="something">
    <%= render 'productions/form' %>
</div>

然后把公用的表单放进views/productions/_form.html.erb就可以了

def create
  @product = Product.new(product_params)

  if @product.save
    redirect_to edit_product_url(@product), notice: 'Product was created. Now edit it.'
  else
    render 'new'
  end

end

未經測試,大概意思如此

#2 楼 @blacktulip 收到,回头测试一下

#2 楼 @blacktulip #1 楼 @cassiuschen 谢谢二位,我大概想这样类似 http://www.guoku.com/entity/new/ 采集信息后,保存入库,再编辑,eview 页面想在一个页面 比如说我采集到信息后,在数据库里保存,我又想编辑这条信息。

#4 楼 @davidminaki 那就是新建的时候用 ajax 提交信息到后台,页面不刷新,使用 js 还可以在页面上添加更多的输入框什么的以填写更多信息。我想这样可以解决你的问题

#5 楼 @cassiuschen 思路 1 ajax 提交给后台后返回 json 数据,通过 js 在页面显示这些内容。再次提交 update? 思路 2 ajax 条给后台直接进入编辑状态可否?

#6 楼 @davidminaki ajax 给后台的话不存在所谓的进入编辑状态……可以 js 修改提交表单的地址成 update 方法的 route 什么的……

需要 登录 后方可回复, 如果你还没有账号请 注册新账号