Ruby on rails 控制器变量在视图中为零
我对RubyonRails非常陌生,但简单的操作让我抓狂 我将变量从控制器传递到视图 但在我看来,这是零。我读了所有与我类似的问题,但没有一个是解决方案 我有一个方法叫Ruby on rails 控制器变量在视图中为零,ruby-on-rails,ruby-on-rails-3,model-view-controller,Ruby On Rails,Ruby On Rails 3,Model View Controller,我对RubyonRails非常陌生,但简单的操作让我抓狂 我将变量从控制器传递到视图 但在我看来,这是零。我读了所有与我类似的问题,但没有一个是解决方案 我有一个方法叫news\u read def news_read @name = "Come On " end 在右侧的关联视图(news\u read.html.erb)中,我尝试了以下方法 <%= @name.inspect %> 3个小时前我的手机出了问题,根本不起作用 任何帮助都将不胜感激 编辑 layo
news\u read
def news_read
@name = "Come On "
end
在右侧的关联视图(news\u read.html.erb)
中,我尝试了以下方法
<%= @name.inspect %>
3个小时前我的手机出了问题,根本不起作用
任何帮助都将不胜感激
编辑
layout :resolve_layout
private
def resolve_layout
case action_name
when "news_read"
"news"
else
"application"
end
end
layout :resolve_layout
def resolve_layout
case action_name
when "news_read"
"news"
else
"application"
end
end
我试图记录一些东西,但它没有被调用,所以我的路由看起来像这样
get "main/news_read"
get "main/index"
root :to => 'main#index', :as => 'main'
resources :categories
resources :testimonials
resources :news
resources :products
resources :teams
resources :abouts
resources :main
resources :header_titles
使用:
然后运行bundle安装
编辑
在你的路线上试试这个
match 'main/news' => 'main#news_read'
然后你的API是localhost/main/news我修复了我试图根据操作名称指定另一个布局,并且该方法是私有的,我不知道为什么它会阻止它,但删除它修复了问题 就这样
layout :resolve_layout
private
def resolve_layout
case action_name
when "news_read"
"news"
else
"application"
end
end
layout :resolve_layout
def resolve_layout
case action_name
when "news_read"
"news"
else
"application"
end
end
解决方案是这样的
layout :resolve_layout
private
def resolve_layout
case action_name
when "news_read"
"news"
else
"application"
end
end
layout :resolve_layout
def resolve_layout
case action_name
when "news_read"
"news"
else
"application"
end
end
我不能评论你的答案(没有足够的分数),所以我在这里加上这个 似乎您正在覆盖内部的
ActionView::TemplateRenderer#resolve_layout
(),我认为这不是您想要实现的,可能是您遇到的问题
我建议您将控制器中的该方法重命名为其他方法,但请将其保持为受保护或私有,这样,如果您有自由路由,它就不会被视为操作方法。您确定您认为正在调用的控制器方法实际上正在被调用吗?如果在操作中调用调试器或记录器,是否会打印日志?获取“main/news\u read”日志没有出现如果我将布局设置为false,则无法获取值,否则无法获取该值这是默认路由,例如,
get“main/news”
是匹配“main/news”=>“main”新闻的缩写:via=>:get
感谢您的帮助,我想出来了,看看我的回答,“是这样的”和“解决方案是这样的”看起来和我一样。我遗漏了什么?第二行的private:)@RyanBigg如果你知道为什么,请告诉我为什么?我不知道这与OP有什么关系。我不认为private是你问题的原因。我知道这是OP相关的问题,但是删除它修复了错误你认为我应该在stackoverflow上问它为什么会发生这种情况吗?谢谢你提供的信息,但仍然是相同的结果它一定是ruby中的OOP