你好(希望)無所不知Rails的人;)傳遞一個實例變量從模型到視圖
我目前正在試圖生成一個實例變量一組單選按鈕在我的車型之一。由於MVC模式禁止將模型中的數據直接傳遞到視圖中,因此我不得不將控制器作爲一種中間人。問題是我無法訪問我的模型的實例變量,即使我使用'attr_reader:valid_statuses'。因此,也不可能將數據傳遞給我的視圖...
這就是我目前的用戶模型。 '@valid_statuses'數組包含應該用於生成單選按鈕的字符串。
class User < ApplicationRecord
attr_reader :valid_statuses
@valid_statuses = %w(new editor admin blocked)
validates :status, inclusion: { in: @valid_statuses }
end
控制器看起來像這樣。 @user不是nil,但@valid_statuses是
class UsersController < ApplicationController
...
def set_user
@user = User.find(params[:id])
@valid_statuses = @user.valid_statuses
end
...
end
的_form.html.erb:
<div class="field">
<%= f.label :status %>
<% @valid_statuses.each do |item| %>
<%= f.radio_button :status, item %> <%= item %><br />
<% end %>
</div>
如果有人知道這個問題的答案,並能與我分享它,我會很greateful剩下的世界!謝謝!
謝謝奧列格。我會看看枚舉! – krebas
@ krebas是的,不錯的選擇。 'enum's有很多利潤和語法糖 –