编辑文章作者

时间:2019-01-30 10:34:41

标签: ruby-on-rails ruby

我有一个属于用户的帖子,并且希望在编辑时选择一个选项,以更改该帖子所关联的用户。

我已经开始了,但是我对Rails还是很陌生,有点卡住了。

我从我的post_controller.rb开始。

def update
    @post.user = associated_user
    if @post.update(post_params)
        flash[:notice] = "Post was successfully updated"
        redirect_to edit_post_path(@post)
    else
        render 'edit'
    end
end

我已经在我的application_controller.rb中定义了方法related_user(我想做的不只是文章。)

def associated_user
    @associated_user ||= User.find(session[:user_id]) if session[:user_id]
end

我知道此代码是错误的-我不希望它获得登录用户,我想从我在表单视图中设置的字段中获取它。

<%= f.text_field :associated_user, class: "form-control", placeholder: "Edit Author" %>

理想情况下,此表单字段将是一个下拉列表,列出具有特定状态的所有用户(我已经在users表中设置了一个布尔值。)

我不确定我有多远,但是如果有人能够提供一些指导,那将不胜感激!

1 个答案:

答案 0 :(得分:0)

如何在模型中定义关系。如果您的帖子属于用户,则使用表单中的下拉控件:

f.collection_select :user_id, User.whateverscope, :id, :text_method

,并且在提交表单时,rails将完成其余的工作。

如果您要进行其他设置,请发布模型,strong_params方法等。