我正在使用authlogic供用户登录,一旦他们这样做,我希望他们能够添加帖子。由于某种原因,我一直得到“找不到没有ID的用户”。以下是我的代码:
posts controller
def create
@user = User.find(params[:user_id])
@post = @user.posts.create(params[:post])
redirect_to current_user_path(@current_user)
end
show page
<% @user.posts.each do |post| %>
<tr>
<td><%= post.postName %></td>
<td><%= post.body %></td>
<td><%= link_to 'Show', post %></td>
<td><%= link_to 'Edit', edit_post_path(post) %></td>
<td><%= link_to 'Destroy', post, :confirm => 'Are you sure?', :method => :delete %> </td>
</tr>
<% end %>
</table>
<br />
<h2>Add a Post:</h2>
<%= form_for([@current_user, @user.posts.build]) do |f| %>
<div class="field">
<%= f.label :body %><br />
<%= f.text_area :body %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
我知道它与当前用户有关,但我无法让这个工作!非常感谢任何帮助!
答案 0 :(得分:0)
首先,您应该使用current_user
而不是@current_user
其次,你正在做@user = User.find(params[:user_id])
,但我不明白为什么你期望在你的参数中有:user_id
这样的东西。这就是为什么你得到“无法找到没有ID的用户”错误。