使用RailsAdmin。我有一个Post模型和一个User模型。每个帖子都属于一个用户。
我使用以下代码让RailsAdmin为我处理关联,并在创建帖子时自动设置user_id:
config.model Post do
edit do
field :user_id do
# use a form_field instead of the default drop-down
partial :form_field
# hide the input
view_helper :hidden_field
# set the value to current_user.id
def value
bindings[:view]._current_user.id
end
end
end
end
此代码有效,它将user_id设置为current_user的值,并且还从视图中隐藏form_field(html输入),以便用户甚至不知道它是代表他们设置的。
但是有一个小问题。虽然我能够隐藏form_field,但我无法隐藏它的相关标签(即输入旁边显示“User”的标签) - 这意味着我的用户会看到:
正如您所看到的,有一个标签“User”,旁边有一个空白区域,下面有“Required”字样。
无论如何都要隐藏输入的相关标签(而不仅仅是输入本身),以免它对用户造成混淆?我的代码有问题吗?
提前致谢
答案 0 :(得分:2)
我也遇到了同样的障碍,经过一些试验和错误(以及来自rails_admin组的提示)到达了一个小小的替代方案:
config.model Library do
edit do
field :user_id do
# This hides the field label
label :hidden => true
# This hides the help field *yuk*
help ""
def value
bindings[:view]._current_user.id
end
# This hides the field input
view_helper do
:hidden_field
end
end
end
field :name
end
答案 1 :(得分:1)
我想我找到了一个有效的解决方案:
field :user_id do
view_helper :hidden_field
# I added these next two lines to solve this
label ""
help ""
partial :form_field
def value
bindings[:view]._current_user.id
end
end
不理想,但有效
答案 2 :(得分:0)
任何有此问题的人的更新。请看这个链接:https://github.com/sferik/rails_admin/wiki/How-to-set-default-values