私は、ユーザーが属性の1つを変更できるようにする問題にぶつかっています。私はホームページに、設定していない場合にこの属性を設定するように促したい。(Ruby on Rails)属性の存在に応じてビューを変更していますか?
私は、この属性の存在を確認するために、このメソッドを書いている:私はELSIFがあればトリガする必要があると考えてい
<% if is_admin? %>
#render admin
<% elsif !start_date_set? %>
#this is what i want to see
<%else %>
#render users posts
<% end %>
<%#=if not logged in %>
<% else %>
#signup page is rendered
#this is what shows up
<% end %>
を:
def start_date_set?
current_user.start_date?
end
をそして、私の見解では、私が書きましたstart_dateセットはありません。これは、新しいアカウントが作成されたときにあってはなりません。しかし、それはトリガしないで、最後のelse条件を表示します。
レンダリングすべきビューがなぜそうでないのか誰にも分かりますか?
class AddStartDateToUser < ActiveRecord::Migration[5.0]
def change
add_column :users, :start_date, :datetime
end
end
はhttp://edgeguides.rubyonrails.org/debugging_rails_applications.html#consoleコンソールを削除しようと 'start_date_setを検査'メソッド?。それはどの価値を返すのですか? – Psylone
「start_date_set?」と入力するとコンソール上のコンソールに「NoMethodError:未定義のメソッドstart_date?」と表示されます。 nil:NilClass " - althoこの方法を検査するかどうかはわかりません。 – Andrew
私はあなたが実際にビューでそれを処理するのではなく、サインインページにユーザーをリダイレクトする必要があるコントローラレイヤーで認証チェックを行うべきだと思います。 – max