0

クライアントコントローラーのビューで次のリンクからパラメーターを渡したいのですが、ハッシュは @client です。@client.user_id を渡したいのですが、(:id => @client.user_id) を入れた場合、取得できません:id このパラメーターを渡したい他のコントローラーの不動産。私は何をすべきか ?それを行う方法はありますか?(2 つのコントローラーはクライアントとエステートです。クライアント ビューからエステート コントローラーの create メソッドに param を渡したいです。ここではリソースのネストはありません!)

<%= link_to "New Property", new_estate_path(:key => @client.first.user_id) %>

アクションを作成

def create
    # @estate = Estate.new(params[:estate])
    if current_user.Company.nil?
      @estate = current_user.estates.build(params[:estate])
    else
      serve = User.find(params[:key])
      debugger
      @estate = serve.estates.build(params[:estate])
      #@estate.user_id = user_id
      debugger
    end

    respond_to do |format|
      if @estate.save
        if @estate.Mgmt.nil?
          EstateMailer.company_confirmation(@estate).deliver
        end
        format.html { redirect_to @estate, notice: 'Estate was successfully created.' }
        format.json { render json: @estate, status: :created, location: @estate }
      else
        format.html { render action: "new" }
        format.json { render json: @estate.errors, status: :unprocessable_entity }
      end
    end
  end
4

3 に答える 3

1

ここに貼り付けたコードは機能するはずです。

<%= link_to "New Property", new_estate_path(:id => @client.user_id) %>

問題は、メソッドのパラメーターを期待していると思いますが、create実際にはnewメソッドに行くところです。

方法をお探しのcreate方。できるよ

<%= link_to "New Property", estates_path(:id => @client.user_id), :method => :post %>

POSTしかし、それはアクションに使用する正しいアプローチではありません。正しい解決策は、を使用することbutton_toです。

<%= button_to "New Property", estates_path(:id => @client.user_id), :method => :post %>

link_toこれらが主な用途であるため、デフォルトでGETおよびbutton_toデフォルトでです。デフォルト以外のアクションを実行させたい場合は、POSTオーバーライドできます。:method

于 2013-06-28T18:55:36.867 に答える
0

すべてのアクションの外側のコントローラーでクラス変数を作成しました。@@key で、新しいアクションでは @@key に params を介して渡された user_id が割り当てられ、この @@key は create アクションで割り当てられました。それが正しい方法かどうかはわかりません。しかし、それは魅力のように機能しました!

于 2013-07-02T15:09:14.967 に答える
0

これを行うだけです

<%= link_to "New Property", new_estate_path(user_id: @client.user_id) %>

コントローラーで:

params[:user_id]

問題は、createアクションが ではPOSTないことGETです。はアクションlink_toのみを許可します。GET

于 2013-06-28T18:46:57.260 に答える