调用控制器的动作但不跳转到ERB视图

时间:2012-12-04 12:37:51

标签: ruby-on-rails view action

谢谢你的时间!

我在routes.rb获取路线:

get "loadreport/test"
post "loadreport/update"

test控制器中的loadreport函数是一个空函数:

def test
end

test.html.erb包含:

<form action="/loadreport/update?method=post" class="button_to" method="post">
  <div>
    <input type="submit" value="Update" />
    <textarea cols="30" id="post_body" name="comments" rows="5" maxlength=200>

    </textarea>
  </div>
</form>

update函数将更新数据库:

def update
  some_database.update(params[:comments])
end

现在当我点击Update button中的test.html.erb时,它会调用/loadreport/update,然后跳转到update.html.erb。由于update.html.erb不存在,服务器会给我一些错误:Template is missing ... blah ...

我想要达到的目标是:当我点击Update button中的test.html.erb时,只需调用/loadreport/update来更新数据库,然后弹出一个显示“更新”的消息框成功!“,而不是跳到另一页。

如何更改我的代码来实现这一目标?任何人都可以给我一些关于这个主题的想法或一些链接。谢谢!

1 个答案:

答案 0 :(得分:1)

您可以发布Ajax帖子并获得返回并显示警报。试试jQuery。

或尝试:

def update
   some_database.update(params[:comments])
   redirect_to :test
end

这将重定向到上一页。