<%= form_for(@membership) do |f| %>
<%= f.collection_select :user_id, User.all, :id, :email %>
<%= f.collection_select :role_id, Role.all, :id, :name %>
<%= f.submit %>
<% end %>
То, что я пытаюсь сделать, это вместо того, чтобы использовать поле выбора для пользователей, я хочу поместить текстовое поле для электронной почты пользователей.
<%= form_for(@membership) do |f| %>
<%= f.text_field :email %>
<%= f.collection_select :role_id, Role.all, :id, :name %>
<%= f.submit %>
<% end %>
Membership.rb
belongs_to :user
belong_to :role
attr_accessor :email
def email
self.user.email if self.user
end
Что я не знаю, так это что написать в контроллере, чтобы он работал, и этот аксессор attr использует вещь и метод электронной почты в порядке? Любая помощь приветствуется.
def create
@membership = Membership.new(params[:membership])
if @membership.save
redirect_to(memberships_url)
else
render :action => "new"
end