如何将控制器中定义的方法的响应包含到jbuilder视图中?

时间:2015-05-23 20:31:21

标签: ruby-on-rails ruby json

我在控制器中定义了一个这样的方法。

def index
end
def show
end
def new
end
def edit
end
def create
end
def findsomething
    #do something using params and store it into an instance variable
    return @thatvariable
end

我想将此响应包含在show.jbuilder文件中。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

视图中提供了每个实例变量,因此不需要使用return关键字。

Here is the railscast that will help

<强>更新

在您的控制器操作中,您可以指定要呈现的视图:

render "show.json.jbuilder"

所以整体代码如下:

def findsomething
    #do something using params and store it into an instance variable
    @thatvariable
    render "show.json.jbuilder"
end

您可以阅读guides了解更多信息。

您可以指定您希望呈现的方式以及控制器#操作中的所有实例变量将以不同方式提供的方式:

render :edit
render action: :edit
render "edit"
render "edit.html.erb"
render action: "edit"
render action: "edit.html.erb"
render "books/edit"
render "books/edit.html.erb"
render template: "books/edit"
render template: "books/edit.html.erb"
render "/path/to/rails/app/views/books/edit"
render "/path/to/rails/app/views/books/edit.html.erb"
render file: "/path/to/rails/app/views/books/edit"
render file: "/path/to/rails/app/views/books/edit.html.erb"

答案 1 :(得分:0)

我们可以在show.json.jbuilder中使用这样的东西来做到这一点。

json.findsomething(@thatvariable)