我有两个控制器,一个用于用户,一个用于微博。
我想做的,是把用户信息和微博形式放在同一个视图上。
问题是这个页面的 url 是 www.mywebsite.com/users/18 所以我只能访问用户控制器。
我试着做:
render :file => '/posts/new' 但它不起作用。
我找到的唯一解决方案是将所有东西都放在一个控制器上,但这会一团糟。
我真的想要为每个单独的控制器。
所以我不知道该怎么做。任何的想法?
我有两个控制器,一个用于用户,一个用于微博。
我想做的,是把用户信息和微博形式放在同一个视图上。
问题是这个页面的 url 是 www.mywebsite.com/users/18 所以我只能访问用户控制器。
我试着做:
render :file => '/posts/new' 但它不起作用。
我找到的唯一解决方案是将所有东西都放在一个控制器上,但这会一团糟。
我真的想要为每个单独的控制器。
所以我不知道该怎么做。任何的想法?
我想做的,是把用户信息和微博形式放在同一个视图上
我认为您正在尝试micropost
在视图内部创建一个新的user
show
。如果是这样,您可以包括以下内容:
<%= form_tag(controller: :microposts, action: :create) do %>
...
<% end %>
当您提交表单时,它将调用控制器create
中的操作。microposts
你在学习 Hartl 的教程吗?好吧,无论如何,您所要做的就是在控制器操作中初始化视图中所需的所有实例变量:
users/18 可能指向 users#show,因此您需要添加类似
class UsersController < ApplicationController
...
def show
@micropost = current_user.microposts.build
...
end
...
end
在 controllers/users_controller.rb (或适合您的模型的东西)中为微帖子表单初始化一个新的微帖子,或者只是
@micropost = Micropost.new
如果您没有/不需要与用户的关联。(不过,Michael Hartl 正在主页上这样做。)