Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将Rails当前用户传递给AngularJS工厂API调用?_Javascript_Ruby On Rails_Angularjs_Factory - Fatal编程技术网

Javascript 如何将Rails当前用户传递给AngularJS工厂API调用?

Javascript 如何将Rails当前用户传递给AngularJS工厂API调用?,javascript,ruby-on-rails,angularjs,factory,Javascript,Ruby On Rails,Angularjs,Factory,在我的Rails应用程序中,我有用户,这些用户可以创建与其帐户关联的帖子。我有一个路由,“/api/:user_id/submissions/:id(:format)”=>“submissions#usersubmission”,如果id与用户关联的id匹配,它将成功显示用户的帖子 我现在要做的是在前端通过AngularJS显示用户的帖子。我不确定如何将:user\u id传递给API调用。以下是我的看法: <div id="submission-list-container">

在我的Rails应用程序中,我有用户,这些用户可以创建与其帐户关联的帖子。我有一个路由,“/api/:user_id/submissions/:id(:format)”=>“submissions#usersubmission”,如果id与用户关联的id匹配,它将成功显示用户的帖子

我现在要做的是在前端通过AngularJS显示用户的帖子。我不确定如何将:user\u id传递给API调用。以下是我的看法:

<div id="submission-list-container">
                <ul id="indexSubmissions">
                        <li ng-repeat="submission in userSubmissions">
                        <a href="/submissions/{{submission.id}}"><h3 id="submissionh3">{{submission.title}} <small>{{submissionPreview(submission.content)}}</small></h3></a>
                        <h1>{{submission.user.email}}</h1>
                        <a id="edit_button" href="/submissions/{{submission.id}}/edit">Edit</a>
                    </li>
                </ul>
            </div>
}))

以及调用的控制器操作:

def usersubmission
    @user = User.find(params[:user_id])
    @submissions = @user.submissions 
    @submission = @submissions.find(params[:id])
    render json: @submission 

end

“BrainDB”角度控制器just.query()是userSubmission工厂。在“userSubmission”工厂中,我不确定如何将其与:user_id关联,以便它成功地以JSON格式返回所有用户的帖子。有什么建议吗?

永远不要从客户端发送用户。你应该永远不要信任客户

您的rails应用程序应该有一个会话,并且您应该将当前用户存储在会话中的某个位置。(会话是一个散列,如果您手动执行,只需使用一个合理的键来存储当前用户的ID)。您可以在登录时执行此操作,然后检索它

class ApplicationController < ActionController::Base

  attr_accessor :current_user

  before_filter :load_current_user

  # ...

  private

  def load_current_user
    self.current_user = User.find(session[:user_id])
  end

end

如果您使用Desive或类似工具,无论如何都会容易得多,因为这些库已经在控制器中插入了
当前用户
(或类似命名的方法)。

在Desive会话控制器中有什么需要修改的吗?我的只是看起来像“类MySessionsController当前用户,无需自行定义任何内容。使用Deave提供的工具。@writed,我正在使用Deave。如果我遵循你的方法,它最终会在localhost:3000而不是我的主页上显示json本身。我该怎么办?这是我的代码:在\u操作之前:加载\u当前\u用户;私有的def load_当前_用户;如果你签了名?;(at)currentuser=当前用户;呈现json:(at)currentuser;结束;end@SzilardMagyar你到底为什么要在before_动作中调用
render
class ApplicationController < ActionController::Base

  attr_accessor :current_user

  before_filter :load_current_user

  # ...

  private

  def load_current_user
    self.current_user = User.find(session[:user_id])
  end

end
def usersubmission
  @submissions = current_user.submissions 
  @submission = @submissions.find(params[:id])
  render json: @submission 
end