Comments (11)
參考意見(新手怕講錯先講~呵)
- 應該是倒過來說吧..instance variables 應該是寫在 controller 再看你要把這個 instance variable 放在哪...e.g. PostsController 有 @posts, @tags 等等~可以放到 posts 的 view 下( application.html.erb 是共用模版)..如果你要不同的 controller 接不同的 layout 就在 controller 下 layout 'xxxx'
所以應該是由 controller 決定 instance variables ,而不是 view (因為是 routes→controller→model→view).而不是由底層來往上推. - 假設post 有多個 tag.如果某個 model(e.g. tag) 在另一個 controller 使用 (post)..那你可以不用有 tag 的 controller, views
3.如同1一樣,看你那些頁面要給ga記錄,就可以放那些 layout - 這個請大神回答(應該是看你的資料結構長怎樣..個人猜測)
5.你這個是 messages controller, 看不懂所謂的 post , group...所以不了解就不回答了..
參考看看..
from ama.
- 實例變數如果放在 layouts/application.html.erb 裡,是否每個controller都要引用?
預設instance variable不會有指定值,會回傳nil
,放在layout當中代表每個頁面都會render
- 什麼情況下,只需要有model 而不需要controller 和 view?
Rails Console底下只需要model不用其他東西。至於在瀏覽器當中,Rails是由router去分配給controller,所以基本上一定會先到router,這題答案就是「無」。
- Google 的網站分析程式,應該放在哪?假設我有多個 layout,可以統一放在 app/assets/javascripts/application.js 裡面嗎? 還是只能一個一個放在 layouts/*.html.erb 裡?
可以統一放,但我建議是用partial切開。
- 如果我有多個controllers想共用上傳照片模組,是否就一定要使用 Polymorphic Association?
要看你上傳照片是使用哪個gem或如何實作,例如Carrierwave是用uploader去掛載到model上,所以可以使用同一個uploader去掛載到不同model上 (儘管不符合Rails邏輯)
- 依照Rails101s的範例,一個group對多個posts,如果我不想用按 New post 去新增,而直接把 post new 表單塞在 group 的 show視圖下,實做可以成功,但是資料驗證會失敗,想請教一下該如何修改?
資料驗證的內容是?
from ama.
另外,建議不同類型的問題可以分開成不同issue來提問,這樣比較方便了解不同問題的人來回答喔~
from ama.
To adlerhsieh:
第一題:我只是想說有沒有萬用的controller (application_controller.rb ?)
第二題:所以Model不可能沒有Controller而獨自存在囉?
第三題:可是我放在 application.js 裡,執行完 RAILS_ENV=production rake assets:precompile 後,檢視首頁原始碼,什麼都看不到 >"<
第四題:我是用Carrierwave沒錯。
第五題:就一般的資料驗證,存放在 message.rb 裡。
不好意思啦,下次會改進 ^_^
from ama.
- 不懂你的問題,請說明你要做什麼。如果是一個全域值要讓所有的 controller, view, model 都使用的話,請使用 const 或 environment variable,這個情況適合 API key。如果是一個全域值只給 controller 使用的話,請放在
ApplicationController
,如果是給 view 用的話,請放在ApplicationHelper
。 - 很多情況會只有 model 沒有 controller / view。最常見的情況就是 joint table。有些廣義的情況不會有 view 像是資料是經由別的 model 產生的 associated model,這個時候你不需要特別為他們做一個單獨的 view,只要在相關的 model 裡面安插 partial view 就好了。
- 一般是放在 partial 裡面由 layout 引用,但是你要直接灑在 layout 裡面也沒關係,只要確定是在
</body>
前面就行了。 - 一個 model 一個 uploader。如果你有必須共用 uploader 的用例,請詳細說明。
- 請檢查
@message.errors
和 browser 送出的資料了,看是少了什麼資料。
from ama.
To: chitsaou
第一題:我其實要在全域布局裡放一個 ransack 的搜尋表單,裡面有 items_controller的實體變數。但是我希望這個表單在其他的 controllers 畫面也能被看到 (也就是我沒有分太多個 layout),我是有找到解決方法,就是在每個 controller 裡都放那個 item 的實體變數,只是覺得這樣很笨,看有沒有偷懶的方法 XD
第四題:所以可以有很多個uploader?
第五題:其實是我不知道message model 驗證錯誤時,要傳回那一個路徑 XD
from ama.
-
最簡單的方法應該是對把那個 form 拆成 partial 然後在 application controller 加 before action 抓 ransack 參數設成 instance variable 之後在 view 裡面丟給 partial。
-
可以,你愛開多少就多少,而且一個 model 也可以掛多個 uploader。
-
一般是 render 前一個 form,因為 redirect 回去的話 parameter 帶不過去。以你的例子應該是 item 的 show
from ama.
關於第 3 個問題:
我會偏好把 Google 分析碼獨立載入,放在讀取 application.js 之前。
HTML5 Boilerplate 有提到 Google 建議把 GA code 放在頁面前面越早載入越好,是為了達到追蹤目的,放在 application.js 裡面要等東西載完才能執行 GA 太慢了,尤其 application.js 體積肥大的時候。
評估自己的情境跟目的,再來決定放哪裡。
from ama.
To chitsaou:
第一、四題:謝謝你的建議,我來試試看 ^_^
第二題:有範例可以參考嗎?
第五題:問題就在我成功也回 item_path(@item),驗證失敗也只能回 item_path(@item) XD
To chinghanho:
第三題:那就直接塞在 layouts/application.html.erb 的 <%= javascript_include_tag "application" %> 上面囉?
from ama.
@afgnsu 我會用 inline 的方式寫耶:
_google_analytics.html.erb
:
<script>
(function(b,o,i,l,e,r){b.GoogleAnalyticsObject=l;b[l]||(b[l]=
function(){(b[l].q=b[l].q||[]).push(arguments)});b[l].l=+new Date;
e=o.createElement(i);r=o.getElementsByTagName(i)[0];
e.src='https://www.google-analytics.com/analytics.js';
r.parentNode.insertBefore(e,r)}(window,document,'script','ga'));
ga('create','UA-XXXXX-X','auto');ga('send','pageview');
</script>
而且我會把 script 放到頁面最底下,最後載入。
layouts/application.html.erb
:
<body>
...
<%= render "google_analytics" %>
<%= javascript_include_tag 'application' %>
</body>
from ama.
感謝大家,我再試試 ^_^
from ama.
Related Issues (20)
- fork gem 後指定 gem source 為自己的 github,capistrano deploy bundle 錯誤 HOT 10
- 請教Devise的問題 HOT 1
- 實作 Agile Web Development With Rails 4 HOT 5
- Agile Web Development With Rails 4 Chapter 11.5
- Agile Web Development With Rails 4 Chapter 11.5
- ActionCable 佈署到 production 後 WebSocket connection failed HOT 4
- 如何直接取得hash的size並作運算 HOT 2
- About rails breadcrumbs gem
- Rails5 WebSocket 偶爾 handshake 404 HOT 2
- 請問關於加密的問題 HOT 2
- 面試題目參考資料 HOT 1
- 請問為何 better_errors 無法在 Rails 4.2.0 + Ruby 2.2.0 上使用? HOT 2
- 詢問 space 和 tab 轉換工具 HOT 6
- 請問要如何實做複選框+背景新增值的功能,或是有那種複選tagging的功能? HOT 11
- 為什麼 deep_dup 實作卻只是呼叫 dup HOT 1
- 請教一下,我把專案從Rails 4.2升級到 5.2,忽然Devise就無法登出了!!! HOT 5
- 請教一下,如何讓一個驗證失敗後就停住? HOT 2
- 想請教一下,如何讓事件點進去能在 Daterangepicker 顯示正確日期? HOT 3
- 商务
- Form only works after page refresh (rails 5.2.8.1, jquery 4.5.1) HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ama.