Rails中的render方法有很多默认值,我找不到统一的文档。
为什么这样做:
render 'modal_new', content: @content
工作吗?我找不到content:是有效的参数名称。我相信效果类似于本地人:{content:@content}。但不确定如何!
答案 0 :(得分:1)
这可能会有所帮助:http://guides.rubyonrails.org/layouts_and_rendering.html
我可能在简化事情,但是这是我看到的大部分事情的完成方式。
在控制器中,如果视图名称与同一控制器的动作/方法匹配,通常可以跳过渲染调用。但是,当控制器不匹配时,您将需要进行显式渲染调用。例如:
class ContentController < ApplicationController
# no render needed, as the view will be `new`
def new
@content = Content.new
end
def create
@content = Content.new(params)
if(@content.save)
redirect_to @content
else
# because there's an error, I want to render 'new' for the user to re-enter data
render 'new'
end
end
end
在视图中,通常会调用render来合并部分图像。例如,您可以这样在new
和edit
视图之间共享表单字段:
<h1>New Content</h1>
<%= render 'form', content: @content %>
<%= link_to 'back', contents_path %>
在这种情况下,'form'
引用部分app/views/content/_form.html.erb
并传递本地变量content: @content
希望这对您有所帮助。