ruby-on-rails - Rails : params in format. html { 渲染 ... }

标签 ruby-on-rails ruby-on-rails-3 templates

我正在尝试在 Controller 方法的 format.html 中传递参数像这样:

def create
  @doc = Doc.new(params[:doc])
  respond_to do |format|
    if @doc.save
      format.html { redirect_to share_url(@doc.user.ftp, @doc) }
    else
      format.html { render "new", :locals => { :template => @doc.template_id } }
    end
  end
end

我收到一个无方法错误,告诉我我正在向 :template 发送正确的参数在局部变量中:
local_assigns {:template=>4}

有什么我想念的东西让它工作吗?它应该重定向到 doc#new行动,但它会去doc#index反而。有任何想法吗?

最佳答案

在 Controller 中使用此语法:

render "new", :locals => { :template => @doc.template_id }

表示您正在渲染 new.html.erb模板,不是部分的。您无法将局部变量传递给非局部 View 。你应该做的是调用render "new" , 并引用 @doc在你需要的那个 View 中。

关于ruby-on-rails - Rails : params in format. html { 渲染 ... },我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17517771/

相关文章:

ruby-on-rails - 数组合并(联合)

html - 我如何/应该在 YAML 文件中声明冒号(标点符号)?

ruby-on-rails-3 - 如何使用sunspot_rails gem为belongs_to关联编写可搜索方法

ruby-on-rails - 使用纯 Ruby 代码编写服务器应用程序是否明智?

linux - 在 openvz 中启动自定义模板失败

c++ - 指向成员的指针的偏移量

mysql - rake db :create not working for legacy rails app (2. 3.5) 使用 MySQL (5.5.28)

ruby-on-rails - 升级到Rails 3和ruby 1.9.2后无效的多字节转义— dtext ='[^\\x80]'

ruby - 我们如何验证 Sequel.connect 是否在 Rails 中打开了我们的 SQLite3 数据库?

c++ - 在模板中获取非常量类型