1
首先,感谢您花时间阅读并回复我的问题。对此,我真的非常感激。在同一视图中处理模型需求?
我不是在寻找关于如何实现以下的确切代码,而是更多的我应该遵循的方向或路径。
已登录的用户可以创建不同的课程。我已经为每门课程添加了一个需求(提供者),并且我希望用户至少有一个提供者关联(在此使用rolify),但是我希望这个提供者具有相同的视图(课程#NEW)
我已经试过如下:
- 嵌套形式(不工作,因为我需要在课程创建至少一个提供商)
- 添加提供商#新在模式上该页面(不能使用form_form从另一个控件调用控制器(@provier)
我想到了以下几点:
- 重定向用户提供#新的,如果他们没有创造一个第一
- 添加一个模式,以及创建一个提供商的form_tag元素,然后刷新页面底层。
您的想法是什么?更好的想法?
谢谢! 弗朗西斯
我的课程#新(_form)查看
<%= 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
重新定向在用户体验方面有点废话,对于用户来说这会让人感到困惑。这就是为什么我更愿意在同一页面上做到这一点。出于某种原因,嵌套窗体将无法正常工作,而且我猜测,课程需要设置提供程序的事实是罪魁祸首。我猜我需要在*课程保存到数据库之前创建提供者? –
使用您当前的模型嵌套窗体不起作用。你必须改变你的attr_accessibles。看看屏幕录像。 – wintermeyer