teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

前回間違って修正したため

2016/02/07 04:39

投稿

hoge_huga
hoge_huga

スコア13

title CHANGED
@@ -1,1 +1,1 @@
1
- ruby on rails 1対多モデルで使えるメソッドについて
1
+ ruby on rails redirect_to @hogeの挙動について
body CHANGED
@@ -1,24 +1,26 @@
1
- ruby on rails で1対多のモデルがあのですが多から1どうれば参照できのか悩んでいます。
1
+ ruby on rails で開発を進めうちにコントローラの見通しよくするため、管理側とユーザー側フォルダ分けしたと考えています。
2
+ クラス名やルートの設定は変更したのですが、新規作成
3
+ 後のリダイレクトで下記のエラーが発生します。
4
+ NoMethodError in Admin::HogeController#create
5
+ undefined method `hoge_url' for #<Admin::HogeController:0x007fa53fa80188>
6
+ 原因はviews/admin/hoge/_form.html.erbの
7
+ 26 def create
8
+ 27 @hoge = TempAnime.new(temp_anime_params)
9
+ 28
10
+ 29 respond_to do |format|
11
+ 30 if @hoge.save
12
+ 31 format.html { redirect_to @hoge, notice: 'Temp anime was successfully created.' }
13
+ 32 format.json { render :show, status: :created, location: @hoge }
14
+ 33 else
15
+ 34 format.html { render :new }
16
+ 35 format.json { render json: @hoge.errors, status: :unprocessable_entity }
17
+ 36 end
18
+ 37 end
19
+ 38 end
20
+ この31行目redirect_to @hogeを
21
+ redirect_to admin_hoge_url(id:@hoge.id)
22
+ とすれば正常に動くのですが、redirect_to @hodeで何故hoge_urlメソッドを実行しようとするのでしょうか?
2
23
 
3
- userモデル
4
- 1 class User < ActiveRecord::Base
5
- 2 has_many:comments,:dependent => :destroy
6
- 3 end
24
+ できれば
7
-
8
- commentモデル
9
- 1 class Comment < ActiveRecord::Base
10
- 2 belongs_to :users
11
- 4 end
12
-
13
- views/comment/index.html.erb
14
- 8 <% @comments.each do |comment| %>
15
- 9 <div class="col-md-6">
16
- 10 <% unless comment.users.nil? %>
25
+ redirect_to @hodeでadmin_hoge_url(id:@hoge.id)、
17
- 11 <div class="col-md-12">ユーザー名:<%= comment.users.name %></div>
18
- 12 <% end %>
19
- 13 <div class="col-md-12">コメント<%= comment.name %></div>
20
- 14 </div>
21
- 15 <% end %>
22
-
23
- こんな風viewからコメントを投稿したユーザー名を取得したですが、comment.usersがnilになって取得できません
26
+ link_to @hogeでadmin_hode_path(@hoge.id)遷移するように設定したいです。
24
- どうすれば良いのでしょうか?

1

 

2016/02/07 04:38

投稿

hoge_huga
hoge_huga

スコア13

title CHANGED
@@ -1,1 +1,1 @@
1
- ruby on rails のredirect_to(@hoge)
1
+ ruby on rails 1対多モデルで使えるメソッドについて
body CHANGED
@@ -1,26 +1,24 @@
1
- ruby on rails で開発を進めうちに、コントローラ見通しよくするため、管理側とユーザー側フォルダ分けしたと考えています。
1
+ ruby on rails で1対多のモデルがあるのですが、多から1どうれば参照できのか悩んでいます。
2
- クラス名やルートの設定は変更したのですが、新規作成
3
- 後のリダイレクトで下記のエラーが発生します。
4
- NoMethodError in Admin::HogeController#create
5
- undefined method `hoge_url' for #<Admin::HogeController:0x007fa53fa80188>
6
- 原因はviews/admin/hoge/_form.html.erbの
7
- 26 def create
8
- 27 @hoge = TempAnime.new(temp_anime_params)
9
- 28
10
- 29 respond_to do |format|
11
- 30 if @hoge.save
12
- 31 format.html { redirect_to @hoge, notice: 'Temp anime was successfully created.' }
13
- 32 format.json { render :show, status: :created, location: @hoge }
14
- 33 else
15
- 34 format.html { render :new }
16
- 35 format.json { render json: @hoge.errors, status: :unprocessable_entity }
17
- 36 end
18
- 37 end
19
- 38 end
20
- この31行目redirect_to @hogeを
21
- redirect_to admin_hoge_url(id:@hoge.id)
22
- とすれば正常に動くのですが、redirect_to @hodeで何故hoge_urlメソッドを実行しようとするのでしょうか?
23
2
 
3
+ userモデル
4
+ 1 class User < ActiveRecord::Base
5
+ 2 has_many:comments,:dependent => :destroy
24
- できれば
6
+ 3 end
7
+
8
+ commentモデル
9
+ 1 class Comment < ActiveRecord::Base
10
+ 2 belongs_to :users
11
+ 4 end
12
+
13
+ views/comment/index.html.erb
14
+ 8 <% @comments.each do |comment| %>
15
+ 9 <div class="col-md-6">
25
- redirect_to @hodeでadmin_hoge_url(id:@hoge.id)、
16
+ 10 <% unless comment.users.nil? %>
17
+ 11 <div class="col-md-12">ユーザー名:<%= comment.users.name %></div>
18
+ 12 <% end %>
19
+ 13 <div class="col-md-12">コメント<%= comment.name %></div>
20
+ 14 </div>
21
+ 15 <% end %>
22
+
26
- link_to @hogeでadmin_hode_path(@hoge.id)遷移するように設定したいです。
23
+ こんな風viewからコメントを投稿したユーザー名を取得したですが、comment.usersがnilになって取得できません
24
+ どうすれば良いのでしょうか?