Ruby 不呈现部分的Rails
我的模型拥有可以创建项目的用户。我试图在我的用户控制器的show操作中渲染一个部分Ruby 不呈现部分的Rails,ruby,ruby-on-rails-4,Ruby,Ruby On Rails 4,我的模型拥有可以创建项目的用户。我试图在我的用户控制器的show操作中渲染一个部分 <% if current_user %> <%= render(:partial => "projects/new_project") %> <% end %> 这是我当前用户的助手方法 def current_user @current_user ||= User.find(session[:user_id]) if session[:user_id]
<% if current_user %>
<%= render(:partial => "projects/new_project") %>
<% end %>
这是我当前用户的助手方法
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
helper_method :current_user
这是新项目的局部视图
<div class="row">
<div class= "col-lg-5 col-md-5 col-xs-5">
<% form_for @project do |f| %>
<%= f.text_field(:title, placeholder: "Give your project a name", :class => 'form-control') %>
<%= f.select(:project_type_id, @project_types.map {|n| [n.project_type_name, n.id]}, {}, :class => 'form-control') %>
<%= f.select(:industry_id, @industries.map {|n| [n.industry_name, n.id]},{}, :class => 'form-control') %>
<%= f.select(:character_id, @characters.map {|n| [n.character_name, n.id]},{}, :class => 'form-control') %>
<%= f.select(:personality_id, @personalities.map {|n| [n.personality_name, n.id]},{}, :class => 'form-control') %>
<%= f.text_area(:description, :class => 'form-control') %>
<div class='padding-top'></div>
<%= submit_tag("Post project", :class => 'btn btn-success btn-sm sniglet') %>
<% end %>
</div>
</div>
“表单控件”)%%>
“表单控件”)%%>
“表单控件”)%%>
“表单控件”)%%>
“表单控件”)%%>
“表单控件”)%%>
“btn btn成功btn sm sniglet”)%%>
如果没有部分,页面将呈现空白。如果没有更多信息,很难知道问题所在。但是,从你提供的有限代码来看,有几件事激起了我的兴趣:
当前用户
的计算结果为false
,并且未呈现部分当前用户在视图中签入?为什么不将操作限制为控制器级别的登录用户
项目
实例,但它没有被传递查看控制器、部分和
当前用户
代码会很有帮助。您只需为当前用户值添加临时日志:
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
Rails.logger.info("!!!#{@current_user}")
end
你会发现你的问题。这里还有一个关于if in模板的小提示:
<%= render(:partial => "projects/new_project") if current_user %>
“项目/新项目”)如果当前用户%>
对我来说读起来更好。你确定设置了
会话[:user\u id]
吗?你能分享项目/新项目的部分内容吗。另外,您确定在尝试此代码时设置了当前用户吗?@Kirti请查看编辑。@Clockwork让我们在聊天中讨论此问题
<%= render(:partial => "projects/new_project") if current_user %>