Ruby on Rails:将model.find(params [:id])保存到类变量中后,show action

时间:2016-09-19 01:55:53

标签: ruby-on-rails model attributes params

我有一个使用params [:id]导航的next / back方法。在我的下一次通话中,我从网址中取出ID以允许下一次通话后将其增加1。据我所知,这很好。

我的问题是显示我正在提取的数据。我已将所需对象(question_basic)保存在变量@question_basic中,我可以使用inspect,@ questions_basic.inspect在视图中正确显示。这很好,除了输出很难看,我只需要一个名为questiontxt的列/属性。我在很多其他事情中尝试过@ questions_basic.questiontxt,而我得到的只是零。唯一显示任何东西的是检查。

这是我的输出:

#<QuestionsBasic ID: 5, question_group_id: 1, question_subgroup_id: 1, company_id: 1, questiontxt: "Ich führe gerne persönliche Gespräche mit anderen ..."> 

如何从该模型中提取该questiontxt属性?我已经尝试了一切,但我无法做到。我把它映射错了吗?

def index
        @i = 1
        @userprojid = current_user.project_id
        @compid= QuestionsBasic.connection.select_all("SELECT company_id FROM project WHERE ID ="+@userprojid.to_s)
        @compid= @compid.rows[0][0]
        @questions_basic = QuestionsBasic.connection.select_all("SELECT questiontxt FROM questions_basic WHERE company_id="+@compid.to_s)
    end

def new
end

def create
    @questions_basic = QuestionsBasic.new(questions_basic_params)
    @questions_basic.save
end

def show

    @questions_basic = QuestionsBasic.find(params[:id])


    @i = params[:id].to_i + 1
end






class QuestionsBasic < ActiveRecord::Base
attr_accessor :id, :questions_group_id, :question_subgroup_id, :company_id, :questiontxt
self.table_name = 'questions_basic'
self.primary_key = :ID

has_many :question_cat_basics, :class_name => 'QuestionCatBasic'
belongs_to :question_group, :class_name => 'QuestionGroup', :foreign_key => :question_group_id
belongs_to :question_subgroup, :class_name => 'QuestionSubgroup', :foreign_key => :question_subgroup_id
belongs_to :company, :class_name => 'Company', :foreign_key => :company_id




end






                <div class="col-sm-6">
                    <h1 class="title_align">Question Form 1</h1>
                    <div class="question_frame" align="center">
                        <p class="question">

                                <%= @questions_basic.inspect %>

                        </p>
<% form_tag({ :controller => "questions_basic", :action => "create"} ) do  %>
<%= hidden_field_tag(:user_id, current_user.id) %>
  <table class="answer">
  <tr>

</tr>
  </table>
  <% end %>
   <p class="extra_info">
                            <span><input type="checkbox" name="extra_important" value="very important" />
                                                                    This question is very important.</span>
                            <span><input type="checkbox" name="extra_skip" value="skip" />
                                                                        I cannot answer this question.</s>
    </p>
 <div class="buttons">

                        <%= form_tag(questions_basic_path(@i), method: "post") do %>
                        <%= submit_tag("next") %>
</div>
<% end %>
 <div class="buttons">
                        <%= form_tag(questions_basic_path(@i-2), method: "post") do %>
                        <%= submit_tag("previous") %>

对于@ questions_basic.questiontxt.inspect

,我没有

for @ questions_basic.attributes.inspect我得到了 {“ID”=&gt; 6,“question_group_id”=&gt; 1,“question_subgroup_id”=&gt; 2,“company_id”=&gt; 1,“questiontxt”=&gt;“Ich fokussiere mich indenVertriebsgesprächenausgiebigauf Up-和交叉销售。“}

1 个答案:

答案 0 :(得分:1)

好的,所以现在我们已经完成了讨论,似乎问题就是模型中的这行代码:

attr_accessor :id, :questions_group_id, :question_subgroup_id, :company_id, :questiontxt

在Rails中,您不必定义模型的属性--Rails足够聪明,可以检查数据库表中的列,并为所有这些列(即读者和编写者)组成访问者。通过添加上面的代码行,你将覆盖rails标准的代码并且Rails会变得混乱......(好吧不是,但它正在做一些使我们感到困惑的事情)。

删除那行代码,你应该好好去。