【问题标题】:Use different variable depending on which view was used in Rails 4根据 Rails 4 中使用的视图使用不同的变量
【发布时间】:2014-06-28 01:58:32
【问题描述】:

我正在使用 Mailboxer,以便用户可以回复我网站上的帖子。我的网站中有两种类型的帖子模型可供用户回复,请求和优惠。

这是我的消息控制器:

class MessagesController < ApplicationController

    # GET /message/new
    def new
        @request = Request.find(params[:request])
        @message = current_user.messages.new
        @user = @request.user
    end

    def reply
        @conversation ||= current_user.mailbox.conversations.find(params[:id])
    end

    # POST /message/create
    def create
        @user = User.find(params[:user])
        @body = params[:body]
        @subject = params[:subject]
        current_user.send_message(@user, params[:body], params[:subject])
        flash[:notice] = "Message has been sent!"
        redirect_to :conversations
    end
end

new 操作中,我使用@request,但如果我回复Offer 帖子,我需要使用@offer 变量。有没有一种方法可以使用 if 语句在 @offer 和 @request 之间进行选择,具体取决于调用 new 操作的视图?这是解决此问题的最佳方法吗?

【问题讨论】:

    标签: ruby-on-rails if-statement


    【解决方案1】:

    这不是世界上最优雅的事情,但像这样简单的事情应该可以工作。

    if params[:request]
      @request = Request.find(params[:request])
    else
      @offer = Offer.find(params[:offer])
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多