现在我在rails中构建一个项目管理应用程序,下面是一些背景信息:如何将逻辑添加到视图? Ruby on Rails
现在我有2个模型,一个是User,另一个是Client。客户和用户有一个一对一的关系(客户端 - > HAS_ONE和用户 - > belongs_to的,这意味着外键它在用户表)
所以我想要做的,一旦你添加它的客户端实际上可以向该客户端添加凭据(添加用户),为了这样做,所有客户端都会显示带有该客户端名称旁边的链接,这意味着您实际上可以为该客户端创建凭据。
我不知道该怎么办,如果你真的在数据库中有证书(这意味着在你的客户端ID的用户表中有记录),那么不要显示该链接。
这里就是我认为会工作
<% for client in @client%>
<h5>
<h4><%= client.id %></h4>
<a href="/clients/<%= client.id %>"><%= client.name %></a>
<% for user in @user %>
<% if user.client_id = client.id %>
<a href="/clients/<%= client.id %>/user/new">Credentials</a>
<%end%>
<% end %>
</h5>
<% end %>
而这里的控制器:
def index
@client = Client.find_all_by_admin(0)
@user = User.find(:all)
end
而是它只是把该链接的数量乘以每个记录在user表中。任何帮助?
你确定问题不仅仅是你使用赋值'='而不是测试相等'=='吗? if user.client_id == client.id而不是if user.client_id = client.id – 2010-06-11 18:52:59
现在我正在努力处理另一个问题......我目前添加的凭证没有真正进入“show”方法而是使用以下方式将client_id传递给用户模型: <%= link_to“凭证”, {:controller =>'user',:action =>'new',:client_id => client.id}%> 将所有内容添加到用户控制器的正确方法是什么? 如果我使用@user = User.new(:user)它将不会加载client_id ,如果我使用@user = User.new(:client_id => params [:client])将不会加载它。 – Gotjosh 2010-06-11 19:14:17
你应该像这样创建用户:'User.new(:client_id => params [:client_id])' – 2010-06-11 20:07:47