Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在RoR中显示来自其他控制器的内容_Ruby On Rails_Ruby_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 在RoR中显示来自其他控制器的内容

Ruby on rails 在RoR中显示来自其他控制器的内容,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我有一个问题:我想在post视图中显示图像。我有以下控制器: # posts_controller.rb class PostsController < ApplicationController before_action :set_post, only: [:show] # GET /posts # GET /posts.json def index if params[:search] @posts = Post.search(params[:s

我有一个问题:我想在post视图中显示图像。我有以下控制器:

# posts_controller.rb
class PostsController < ApplicationController
  before_action :set_post, only: [:show]

  # GET /posts
  # GET /posts.json
  def index
    if params[:search]
      @posts = Post.search(params[:search]).order("created_at DESC")
    else
      @posts = Post.all.order('created_at DESC')
    end
  end

  # GET /posts/1
  # GET /posts/1.json
  def show
  end

  private
    # Use callbacks to share common setup or constraints between actions.
    def set_post
      @post = Post.find_by_slug(params[:id])
    end

    # Never trust parameters from the scary internet, only allow the white list through.
    def post_params
      params.require(:post).permit(:titulo, :slug, :texto, :imagem)
    end

end
#posts_controller.rb
类PostsController<应用程序控制器
操作之前:设置发布,仅:[:显示]
#获取/发布
#GET/posts.json
def索引
如果参数[:搜索]
@posts=Post.search(参数[:search]).order(“在描述时创建”)
其他的
@posts=Post.all.order('created_at DESC')
结束
结束
#获取/posts/1
#GET/posts/1.json
def秀
结束
私有的
#使用回调在操作之间共享公共设置或约束。
def set_柱
@post=post.find\u by_slug(参数[:id])
结束
#永远不要相信来自恐怖网络的参数,只允许白名单通过。
def post_参数
参数require(:post).permit(:titulo,:slug,:texto,:imagem)
结束
结束

#imgs_controller.rb
类ImgsController<应用程序控制器
操作前:设置\u img,仅:[:显示]
#GET/imgs
#GET/imgs.json
def索引
@imgs=Img.all
结束
#GET/imgs/1
#GET/imgs/1.json
def秀
结束
私有的
#使用回调在操作之间共享公共设置或约束。
def设置
@img=img.find(参数[:id])
结束
#永远不要相信来自恐怖网络的参数,只允许白名单通过。
def img_参数
参数要求(:img).允许(:imagem,:nome,:descripcao,:to_幻灯片)
结束
结束

如何在视图/posts/index.html.erb中调用ImgsController的方法“index”和/或“show”?有办法吗?

当然,您可以渲染任何模板文件:

render "posts/show" # or index


我假设您拥有同时使用这两个或两个控制器变量的逻辑。

当然,您可以呈现任何模板文件:

render "posts/show" # or index

我假设您的逻辑可以同时处理两个或两个控制器变量。

如果要在post视图中渲染图像,应在posts\U控制器中提供这些资源

我想你有一种类似的联想

class Post
  has_many :images
end
所以你可以这样做:

# posts/index.html.erb
<% @posts.each do |post| %>
  <p><%= post.name %></p>
  <% @post.images.each do |img|
    <p><%= img.name %></p>
  <% end %>
<% end %>
#posts/index.html.erb

没有

如果要在post视图中渲染图像,应在posts\U控制器中提供这些资源

我想你有一种类似的联想

class Post
  has_many :images
end
所以你可以这样做:

# posts/index.html.erb
<% @posts.each do |post| %>
  <p><%= post.name %></p>
  <% @post.images.each do |img|
    <p><%= img.name %></p>
  <% end %>
<% end %>
#posts/index.html.erb


所有的答案都帮助我找到了解决办法。 我读了本杰明·辛克莱说的指南

我所需要做的就是

@imgs = Img.all
PostsController的方法“索引”中

因此,我在views/posts/index.html.erb中调用了@imgs

简单


谢谢

所有的答案都帮助我找到了解决办法。 我读了本杰明·辛克莱说的指南

我所需要做的就是

@imgs = Img.all
PostsController的方法“索引”中

因此,我在views/posts/index.html.erb中调用了@imgs

简单


谢谢

最佳起点是Rails导轨:最佳起点是Rails导轨: