2

ユーザー用とマイクロポスト用の 2 つのコントローラーがあります。

私がやろうとしているのは、同じビュー、ユーザー情報、およびマイクロポスト フォームを配置することです。

問題は、このページの URL が www.mywebsite.com/users/18 であるため、ユーザー コントローラーにしかアクセスできないことです。

私はやろうとしました:

render :file => '/posts/new' でもうまくいきません。

私が見つけた唯一の解決策は、すべてを1つのコントローラーに配置することですが、それは混乱します.

それぞれに別々のコントローラーが本当に欲しいです。

だから私はこれを行う方法がわかりません。何か案が?

4

2 に答える 2

3

私がやろうとしているのは、ユーザー情報とマイクロポストフォームを同じビューに置くことです

micropostビュー内に新しいものを作成しようとしていると思いますuser show。その場合、以下を含めることができます。

<%= form_tag(controller: :microposts, action: :create) do %>
  ...
<% end %>

フォームを送信するとcreatemicropostsコントローラーでアクションが呼び出されます。

于 2012-07-29T12:47:13.830 に答える
0

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 はホームページでそれを行っています。)

于 2012-07-29T12:42:25.337 に答える