【问题标题】:**UPDATED** Error in method in Rails 3**更新** Rails 3 中的方法错误
【发布时间】:2013-01-22 22:40:26
【问题描述】:

我需要一种方法来确定用户是否拥有项目。

我的用户模型有一个has_one :project 声明

并将 Project 模型作为 belongs_to :User 声明。

我想使用此逻辑在我的app/views/users/show.html.erb 文件中设置切换状态...

<div id="snapshot">
    <h2>Project Snapshot</h2>
    <% if has_project? %>
        <% render 'projects/project_overview' %>
    <% else %>
        <% render 'projects/no_project' %>
    <% end %>
</div>

ProjectsHelper 方法的代码是...

<% def has_project %>
  <% current_user.project(params[:user_id]) %>
<% end %>

我需要知道为什么这没有呈现任何一个选项?视图显示没有错误。

问题已从原始更新。

【问题讨论】:

  • 您的render 行前面需要有一个等号才能实际显示&lt;%= render 'projects/project_overview' %&gt;
  • 是的。谢谢。菜鸟错误...:P

标签: ruby-on-rails-3 syntax associations erb


【解决方案1】:

删除语句中的等号。

您的代码有:

<%= if has_project? %>

应该是:

<% if has_project? %>

编辑

尝试将您的&lt;% if has_project? %&gt; 更改为&lt;% if current_user.project %&gt;(因为您似乎只想查询当前用户是否有关联的项目)并删除辅助方法。请参阅the Rails API entry on ActiveRecord::Associations::ClassMethods,了解创建关联时提供了哪些方法。

【讨论】:

  • 解决了语法错误,但现在代码不显示任何渲染选项。有什么想法吗?
  • ProjectsHelper 中找到的方法的代码是... def has_project? user = current_user.project(params[:user_id]) end
  • 您能用has_project? 方法中的代码更新您的问题吗?或者,你的意思是写&lt;% if @user.project %&gt;之类的东西吗?
猜你喜欢
  • 2014-07-22
  • 1970-01-01
  • 2011-01-24
  • 1970-01-01
  • 1970-01-01
  • 2013-02-14
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
相关资源
最近更新 更多