当我最初调用新函数时,所有变量都会正确加载。params[:code] 是在路由中定义的 URL 参数。但是,当 create 验证失败并呈现 new 时,不会加载 @m 变量(这会在“new”模板中调用 @m 的属性时导致 nomethoderror)。所以,渲染new后没有得到:code参数。但是,验证失败后是否可以保留 :code 参数?
class AffiliatesController < ApplicationController
def new
@m = Merchant.find_by_code(params[:code])
@affiliate = Affiliate.new
end
def create
a = Affiliate.new(params[:affiliate])
if a.save
redirect_to 'http://' + params[:ref]
else
render 'new'
end
end
end