【问题标题】:Must a rails controller return a view for each action?Rails 控制器必须为每个操作返回一个视图吗?
【发布时间】:2014-07-15 13:46:05
【问题描述】:

我的 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)

我的控制器是否试图找到要呈现的视图?如果有,为什么?

我怎样才能让控制器更新数据库而不采取任何进一步的行动?

【问题讨论】:

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


    【解决方案1】:

    你可以这样做:

    render nothing: true
    

    在您的 update_tool 操作中。

    请检查此以供参考:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-26
      • 1970-01-01
      • 2012-04-28
      • 1970-01-01
      • 2020-08-18
      • 2012-09-05
      • 1970-01-01
      相关资源
      最近更新 更多