Ruby on rails 当控制器看起来像这样时,Curl-POST-to-Rails应用程序

Ruby on rails 当控制器看起来像这样时,Curl-POST-to-Rails应用程序,ruby-on-rails,post,curl,Ruby On Rails,Post,Curl,为了创建一个新的条目对象,我正在尝试对我的Rails应用程序进行卷曲。问题是我的控制器创建操作如下所示: def create @user = current_user @entry = @user.entries.build(params[:entry]) respond_to do |format| if @entry.save format.html { redirect_to landin

为了创建一个新的条目对象,我正在尝试对我的Rails应用程序进行卷曲。问题是我的控制器创建操作如下所示:

      def create
        @user = current_user
        @entry = @user.entries.build(params[:entry])

        respond_to do |format|
         if @entry.save
          format.html { redirect_to landing_page_url, notice: 'Entry was successfully created.' }
          format.json { render json: @entry, status: :created, location: @entry }
         else
          format.html { render action: "new" }
          format.json { render json: @entry.errors, status: :unprocessable_entity }
         end
        end
       end
调用@user.entries.build只会返回一个异常,因为当前用户不存在。问题是,当我使用浏览器创建一个条目时(当我登录并创建当前的用户变量时),Create操作运行良好,但我不知道是否可以在不更改控制器逻辑的情况下创建一个条目。如果这是不可能的,有人能帮我们找到构建控制器逻辑的正确方向吗(与curlpost兼容)

如果这是一个愚蠢的问题,我很抱歉,我对这一切都很陌生


PS:如果有帮助的话,我正在使用Rails 3.2.3。

不确定如何创建当前用户(它基于什么),但这必须存在,您的方法才能工作。 如果您可以将参数传递给指定用户的操作,并将当前用户设置为
current\u user | |=params[:user]
。。。请注意此操作的安全影响


你真的应该在你的操作上设置一个before\u过滤器来设置当前用户(我想是通过登录)。

当你卷曲时,你是想选择HTML响应还是JSON响应?@veraticus我真的不介意,我将curl-curl-POST-d'headline=blabla'-d'body=blabla'这样响应将是HTML,但我也可以将其卷曲到/entries.json以获取json。但是如何通过curl-POST设置当前用户
current_user
就是这个方法
@current_user | |=user.find(session[:user_id]),如果session[:user_id]
,则从Railscast获得它。有没有一种方法可以在不调用
@user.entries.build
的情况下在条目和用户之间建立关联?您可以在控制器中手动设置会话[:user_id],可以从perl传递的参数中获取,也可以只对其进行硬编码。好的,我将尝试类似的方法。谢谢