首先,感谢您花时间阅读并回答我的问题。我真的很感激。
我不是在寻找如何实现以下内容的确切代码,而是我应该遵循的更多方向或路径。
登录的用户可以创建不同的课程。我已经为每门课程添加了一个要求(一个提供者),我希望用户在这之前至少有一个提供者关联(使用rolify),但我希望这个是相同的视图(课程) #NEW)
我尝试了以下内容:
我想到了以下几点:
你有什么想法?更好的想法?
谢谢! 弗朗西斯
我的课程#new(_form)view
<%= simple_form_for(@course) do |f| %>
<%= f.error_notification %>
<%= f.input :name %>
<%= f.input :description, as: :text, input_html: { rows: '2' } %>
<%= f.association :provider, :value_method => :id, collection: Provider.with_role(:provider_admin, current_user), input_html: { class: 'input-large' }, include_blank: false %>
<div class="form-actions">
<%= f.button :submit, :class => 'btn-primary' %>
<%= link_to "Cancel", :back, class: 'btn' %>
</div>
<% end %>
模型/ provider.rb
class Provider < ActiveRecord::Base
attr_accessible :description, :name
validates :name, :presence => true
validates :description, :presence => true
validates :name, :length => { :minimum => 6, :maximum => 100 }
validates :description, :length => { :minimum => 6, :maximum => 100 }
has_many :courses
end
模型/ course.rb
class Course < ActiveRecord::Base
attr_accessible :description, :name, :provider_id
validates :name, :presence => true
validates :name, :length => { :minimum => 6, :maximum => 100 }
validates :description, :presence => true
validates :description, :length => { :minimum => 6, :maximum => 256 }
validates :provider_id, :presence => true
belongs_to :provider
has_many :sessions, :dependent => :destroy
end
答案 0 :(得分:1)
我喜欢在courses#new
时在providers#new
到!current_user.provider.any?
进行重定向的想法。
但我可能会采用嵌套的形式。如果用户没有提供者,您可以使用一个表单创建新课程和新提供者。看看http://railscasts.com/episodes/196-nested-model-form-revised,快速了解一下。我认为这将是最好的用户界面。