传递变量来控制并保存到数据库

时间:2013-05-10 17:59:42

标签: ruby-on-rails devise haml

我能够将变量传递给控制器​​,但我认为我的方法不正确。我有推荐,其中回复可以应用于推荐,在我已嵌套推荐内的回复的路线中。

我正在尝试传递user.id和referral.id来回复控制器并将其写入数据库。 User.id正在编写,但我不能让两个变量都进入数据库。

我检查了两个变量进入Controller,我只是没有正确的方法。我尝试了很多组合,但我很困惑。

回复控制器

  class RepliesController < ApplicationController
     def new
      @user_id = params[:user_id]
      @user_id.to_s
      @reply = Reply.new
      @referral = Referral.find(params[:referral_id])
      @reply = @referral.replies.build(@user_id, :referral_id)
      respond_to do |format|
        if @reply.save
          format.html { redirect_to referrals_path, notice: 'Replied' }
        else
          format.json { render json: @reply.errors, status: :unprocessable_entity }
        end
      end
    end
  end

路线

    resources :referrals do
      resources :replies
    end

按钮回复转介 这是填充索引页面上的引用的部分

  = link_to '<i class="icon-ok"> Reply</i>'.html_safe, new_referral_reply_path(:referral_id => referral.id, :replier_id => current_user.id)

尝试为“posts”类型的方法实现“喜欢”,但在回复表中具有用户的id和引用。基本上我需要将两个Params从链接

传递到db中

现在我收到此错误(http://本地主机:3000 / referrals / 1 /回复/ new?user_id = 2)

RepliesController#new

中的NoMethodError

未定义的方法`stringify_keys'表示“2”:字符串 Rails.root:/ Users / laszlo / Documents / rails_projects / GemPort

应用程序跟踪|框架跟踪|完整追踪 app / controllers / replies_controller.rb:7:在'new'

1 个答案:

答案 0 :(得分:0)

在写入db:

时发现将params传递到列中很容易

回复控制器:

  class RepliesController < ApplicationController
     def new
      @referral = Referral.find(params[:referral_id])
      @reply = @referral.replies.new(:user_id => params[:user_id], :referral_id => params[:referral_id])
      respond_to do |format|
        if @reply.save
          format.html { redirect_to referrals_path, notice: 'Replied' }
        else
          format.json { render json: @reply.errors, status: :unprocessable_entity }
        end
      end
    end
  end

此链接帮助了我: undefined method `stringify_keys!' ruby on rails