rails控制器必须为每个操作返回一个视图吗?

时间:2014-07-15 13:46:06

标签: jquery ruby-on-rails templates routing controllers

我的rails users_controller正在update_tool路径接收ajax数据。 我的意图是按用户的价格递减用户dollars,并将该工具的ID添加到用户的tool_id(引用工具表)。

我在参数中收到:user_id:toolId

继承人我的控制人员:

def update_tool
    redirect_to :index
    @user = User.find(params[:user_id])
    @tool = Tool.find(params[:toolId])
    price = @tool.price

    # subtract tool price from users dollars
    @user.dollars = @user.dollars - price

    # re-assign users tool_id reference ID
    @user.tool_id = @tool.id

    #store to database
    @user.save

  end

然而,当我触发此路径时,似乎没有任何事情发生,我在浏览器控制台中收到以下错误:

浏览器错误: PATCH http://localhost:3000/update_dollars 500 (Internal Server Error) jquery.js?body=1:5

我的服务器日志显示:

日志: ActionView::MissingTemplate (Missing template users/update_dollars, application/update_dollars....(etc)

我的控制器是否试图找到要渲染的视图?如果是这样的话?

如何让控制器更新数据库,而不采取任何进一步的措施?

1 个答案:

答案 0 :(得分:2)

你可以这样做:

render nothing: true

update_tool行动中。

请查看此参考:

http://guides.rubyonrails.org/layouts_and_rendering.html